aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSilvio <silvio.traversaro@iit.it>2016-10-23 22:23:03 +0200
committerSilvio <silvio.traversaro@iit.it>2016-10-23 22:23:03 +0200
commitefc25d21d500e2a20d2fb1a98787e8ebce82f23a (patch)
tree45783ccff2a2d2f64aaf98fe4dc6e172beeac0c7
parentaf2500416bcbab58fd0de516d96e6d533bc93904 (diff)
downloadvcpkg-efc25d21d500e2a20d2fb1a98787e8ebce82f23a.tar.gz
vcpkg-efc25d21d500e2a20d2fb1a98787e8ebce82f23a.zip
Add jxrlib port
-rw-r--r--ports/jxrlib/CMakeLists.txt99
-rw-r--r--ports/jxrlib/CONTROL3
-rw-r--r--ports/jxrlib/LICENSE23
-rw-r--r--ports/jxrlib/portfile.cmake24
4 files changed, 149 insertions, 0 deletions
diff --git a/ports/jxrlib/CMakeLists.txt b/ports/jxrlib/CMakeLists.txt
new file mode 100644
index 000000000..e1df20dad
--- /dev/null
+++ b/ports/jxrlib/CMakeLists.txt
@@ -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"
+) \ No newline at end of file
diff --git a/ports/jxrlib/CONTROL b/ports/jxrlib/CONTROL
new file mode 100644
index 000000000..f579d783e
--- /dev/null
+++ b/ports/jxrlib/CONTROL
@@ -0,0 +1,3 @@
+Source: jxrlib
+Version: 1.1
+Description: Open source implementation of the jpegxr image format standard.
diff --git a/ports/jxrlib/LICENSE b/ports/jxrlib/LICENSE
new file mode 100644
index 000000000..2b6f03f6c
--- /dev/null
+++ b/ports/jxrlib/LICENSE
@@ -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. \ No newline at end of file
diff --git a/ports/jxrlib/portfile.cmake b/ports/jxrlib/portfile.cmake
new file mode 100644
index 000000000..40c29c0b0
--- /dev/null
+++ b/ports/jxrlib/portfile.cmake
@@ -0,0 +1,24 @@
+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)
+
+# 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)