Merge branch 'traversaro-add-jxrlib'

This commit is contained in:
Alexander Karatarakis 2016-10-24 16:36:56 -07:00
commit 616ef93124
4 changed files with 153 additions and 0 deletions

View File

@ -0,0 +1,99 @@
# Copyright Mathieu Malaterre <malat@debian.org>
# BSD (Same as jxrlib)
# Based on https://jxrlib.codeplex.com/discussions/440294
# and modified for vcpkg packaging
cmake_minimum_required(VERSION 2.8)
project(jxrlib C)
# Need shared libs for ABI
option(BUILD_SHARED_LIBS "Build shared libraries" ON)
# helper macro to preserve original Makefile convention
macro(JXR_MAKE_OBJ SET_NAME)
foreach(src ${SRC_${SET_NAME}})
list(APPEND OBJ_${SET_NAME} ${DIR_${SET_NAME}}/${src})
endforeach()
endmacro()
include(TestBigEndian)
test_big_endian(ISBIGENDIAN)
if(ISBIGENDIAN)
set(DEF_ENDIAN _BIG__ENDIAN_)
endif()
set(DIR_SYS image/sys)
set(DIR_DEC image/decode)
set(DIR_ENC image/encode)
set(DIR_GLUE jxrgluelib)
set(DIR_TEST jxrtestlib)
set(DIR_EXEC jxrencoderdecoder)
if(NOT JXRLIB_INSTALL_BIN_DIR)
set(JXRLIB_INSTALL_BIN_DIR "bin")
endif()
if(NOT JXRLIB_INSTALL_LIB_DIR)
set(JXRLIB_INSTALL_LIB_DIR "lib")
endif()
if(NOT JXRLIB_INSTALL_INCLUDE_DIR)
set(JXRLIB_INSTALL_INCLUDE_DIR "include/jxrlib")
endif()
include_directories(
common/include
${DIR_SYS}
${DIR_GLUE}
${DIR_TEST}
)
# JPEG-XR
set(SRC_SYS adapthuff.c image.c strcodec.c strPredQuant.c strTransform.c perfTimerANSI.c)
JXR_MAKE_OBJ(SYS)
set(SRC_DEC decode.c postprocess.c segdec.c strdec.c strInvTransform.c strPredQuantDec.c JXRTranscode.c)
JXR_MAKE_OBJ(DEC)
set(SRC_ENC encode.c segenc.c strenc.c strFwdTransform.c strPredQuantEnc.c)
JXR_MAKE_OBJ(ENC)
add_library(jpegxr ${OBJ_ENC} ${OBJ_DEC} ${OBJ_SYS})
set_property(TARGET jpegxr
PROPERTY COMPILE_DEFINITIONS __ANSI__ DISABLE_PERF_MEASUREMENT ${DEF_ENDIAN}
)
set_property(TARGET jpegxr PROPERTY LINK_INTERFACE_LIBRARIES "")
install(TARGETS jpegxr
EXPORT JXRLibTargets
RUNTIME DESTINATION ${JXRLIB_INSTALL_BIN_DIR}
LIBRARY DESTINATION ${JXRLIB_INSTALL_LIB_DIR}
ARCHIVE DESTINATION ${JXRLIB_INSTALL_LIB_DIR}
)
# JXR-GLUE
set(SRC_GLUE JXRGlue.c JXRMeta.c JXRGluePFC.c JXRGlueJxr.c)
JXR_MAKE_OBJ(GLUE)
set(SRC_TEST JXRTest.c JXRTestBmp.c JXRTestHdr.c JXRTestPnm.c JXRTestTif.c JXRTestYUV.c)
JXR_MAKE_OBJ(TEST)
add_library(jxrglue ${OBJ_GLUE} ${OBJ_TEST})
set_property(TARGET jxrglue
PROPERTY COMPILE_DEFINITIONS __ANSI__ DISABLE_PERF_MEASUREMENT ${DEF_ENDIAN}
)
set_property(TARGET jxrglue PROPERTY LINK_INTERFACE_LIBRARIES "")
install(TARGETS jxrglue
EXPORT JXRLibTargets
RUNTIME DESTINATION ${JXRLIB_INSTALL_BIN_DIR}
LIBRARY DESTINATION ${JXRLIB_INSTALL_LIB_DIR}
ARCHIVE DESTINATION ${JXRLIB_INSTALL_LIB_DIR}
)
target_link_libraries(jxrglue jpegxr)
# install rules
install(FILES jxrgluelib/JXRGlue.h jxrgluelib/JXRMeta.h jxrtestlib/JXRTest.h
image/sys/windowsmediaphoto.h
DESTINATION ${JXRLIB_INSTALL_INCLUDE_DIR} COMPONENT Headers
)
install(DIRECTORY common/include/ DESTINATION ${JXRLIB_INSTALL_INCLUDE_DIR}
FILES_MATCHING PATTERN "*.h"
)

3
ports/jxrlib/CONTROL Normal file
View File

@ -0,0 +1,3 @@
Source: jxrlib
Version: 1.1
Description: Open source implementation of the jpegxr image format standard.

23
ports/jxrlib/LICENSE Normal file
View File

@ -0,0 +1,23 @@
Copyright © Microsoft Corp.
All rights reserved.
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are met:
• Redistributions of source code must retain the above copyright notice,
this list of conditions and the following disclaimer.
• Redistributions in binary form must reproduce the above copyright notice,
this list of conditions and the following disclaimer in the documentation
and/or other materials provided with the distribution.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
POSSIBILITY OF SUCH DAMAGE.

View File

@ -0,0 +1,28 @@
include(${CMAKE_TRIPLET_FILE})
include(vcpkg_common_functions)
set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src)
vcpkg_download_distfile(ARCHIVE
URLS "http://download-codeplex.sec.s-msft.com/Download/SourceControlFileDownload.ashx?ProjectName=jxrlib&changeSetId=e922fa50cdf9a58f40cad07553bcaa2883d3c5bf"
FILENAME "jxrlib_1_1.zip"
SHA512 6e8b579108444e9bea8d01f57e2ac3b63963c084adb8e265cfd82bb1199b8bd168b8aa41319cf34b87e97db1d72d0f3cc2d3dac881fcd1a6f398fe808d55772d
)
vcpkg_extract_source_archive(${ARCHIVE})
file(COPY ${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt DESTINATION ${SOURCE_PATH})
vcpkg_configure_cmake(
SOURCE_PATH ${SOURCE_PATH}
OPTIONS -DCMAKE_WINDOWS_EXPORT_ALL_SYMBOLS:BOOL=ON
)
vcpkg_install_cmake()
file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include)
if(VCPKG_LIBRARY_LINKAGE STREQUAL dynamic)
vcpkg_copy_pdbs()
endif()
# Handle copyright
file(COPY ${CMAKE_CURRENT_LIST_DIR}/LICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/jxrlib)
file(RENAME ${CURRENT_PACKAGES_DIR}/share/jxrlib/LICENSE ${CURRENT_PACKAGES_DIR}/share/jxrlib/copyright)