]> git.proxmox.com Git - ceph.git/blame - ceph/src/jaegertracing/opentelemetry-cpp/tools/vcpkg/ports/jxrlib/CMakeLists.txt
update ceph source to reef 18.1.2
[ceph.git] / ceph / src / jaegertracing / opentelemetry-cpp / tools / vcpkg / ports / jxrlib / CMakeLists.txt
CommitLineData
1e59de90
TL
1# Copyright Mathieu Malaterre <malat@debian.org>
2# BSD (Same as jxrlib)
3# Based on https://jxrlib.codeplex.com/discussions/440294
4# and modified for vcpkg packaging
5cmake_minimum_required(VERSION 2.8)
6project(jxrlib C)
7
8# Need shared libs for ABI
9option(BUILD_SHARED_LIBS "Build shared libraries" ON)
10
11# Add a debug postfix
12set(CMAKE_DEBUG_POSTFIX "d")
13
14# helper macro to preserve original Makefile convention
15macro(JXR_MAKE_OBJ SET_NAME)
16 foreach(src ${SRC_${SET_NAME}})
17 list(APPEND OBJ_${SET_NAME} ${DIR_${SET_NAME}}/${src})
18 endforeach()
19endmacro()
20
21if(NOT MSVC)
22 add_definitions(-D__ANSI__)
23 add_compile_options(-Wno-error=implicit-function-declaration)
24endif()
25
26include(TestBigEndian)
27test_big_endian(ISBIGENDIAN)
28if(ISBIGENDIAN)
29 set(DEF_ENDIAN _BIG__ENDIAN_)
30endif()
31
32set(DIR_SYS image/sys)
33set(DIR_DEC image/decode)
34set(DIR_ENC image/encode)
35
36set(DIR_GLUE jxrgluelib)
37set(DIR_TEST jxrtestlib)
38set(DIR_EXEC jxrencoderdecoder)
39
40if(NOT JXRLIB_INSTALL_BIN_DIR)
41 set(JXRLIB_INSTALL_BIN_DIR "bin")
42endif()
43
44if(NOT JXRLIB_INSTALL_LIB_DIR)
45 set(JXRLIB_INSTALL_LIB_DIR "lib")
46endif()
47
48if(NOT JXRLIB_INSTALL_INCLUDE_DIR)
49 set(JXRLIB_INSTALL_INCLUDE_DIR "include/jxrlib")
50endif()
51
52include_directories(
53 common/include
54 ${DIR_SYS}
55 ${DIR_GLUE}
56 ${DIR_TEST}
57)
58
59
60# JPEG-XR
61set(SRC_SYS adapthuff.c image.c strcodec.c strPredQuant.c strTransform.c perfTimerANSI.c)
62JXR_MAKE_OBJ(SYS)
63set(SRC_DEC decode.c postprocess.c segdec.c strdec.c strInvTransform.c strPredQuantDec.c JXRTranscode.c)
64JXR_MAKE_OBJ(DEC)
65set(SRC_ENC encode.c segenc.c strenc.c strFwdTransform.c strPredQuantEnc.c)
66JXR_MAKE_OBJ(ENC)
67
68add_library(jpegxr ${OBJ_ENC} ${OBJ_DEC} ${OBJ_SYS})
69set_property(TARGET jpegxr
70 PROPERTY COMPILE_DEFINITIONS DISABLE_PERF_MEASUREMENT ${DEF_ENDIAN}
71)
72set_property(TARGET jpegxr PROPERTY LINK_INTERFACE_LIBRARIES "")
73install(TARGETS jpegxr
74 EXPORT JXRLibTargets
75 RUNTIME DESTINATION ${JXRLIB_INSTALL_BIN_DIR}
76 LIBRARY DESTINATION ${JXRLIB_INSTALL_LIB_DIR}
77 ARCHIVE DESTINATION ${JXRLIB_INSTALL_LIB_DIR}
78)
79
80# JXR-GLUE
81set(SRC_GLUE JXRGlue.c JXRMeta.c JXRGluePFC.c JXRGlueJxr.c)
82JXR_MAKE_OBJ(GLUE)
83set(SRC_TEST JXRTest.c JXRTestBmp.c JXRTestHdr.c JXRTestPnm.c JXRTestTif.c JXRTestYUV.c)
84JXR_MAKE_OBJ(TEST)
85
86add_library(jxrglue ${OBJ_GLUE} ${OBJ_TEST})
87set_property(TARGET jxrglue
88 PROPERTY COMPILE_DEFINITIONS DISABLE_PERF_MEASUREMENT ${DEF_ENDIAN}
89)
90set_property(TARGET jxrglue PROPERTY LINK_INTERFACE_LIBRARIES "")
91install(TARGETS jxrglue
92 EXPORT JXRLibTargets
93 RUNTIME DESTINATION ${JXRLIB_INSTALL_BIN_DIR}
94 LIBRARY DESTINATION ${JXRLIB_INSTALL_LIB_DIR}
95 ARCHIVE DESTINATION ${JXRLIB_INSTALL_LIB_DIR}
96)
97
98target_link_libraries(jxrglue jpegxr)
99
100# install rules
101install(FILES jxrgluelib/JXRGlue.h jxrgluelib/JXRMeta.h jxrtestlib/JXRTest.h
102 image/sys/windowsmediaphoto.h
103 DESTINATION ${JXRLIB_INSTALL_INCLUDE_DIR} COMPONENT Headers
104)
105install(DIRECTORY common/include/ DESTINATION ${JXRLIB_INSTALL_INCLUDE_DIR}
106 FILES_MATCHING PATTERN "*.h"
107)