-
Notifications
You must be signed in to change notification settings - Fork 3
Expand file tree
/
Copy pathCMakeLists.txt
More file actions
121 lines (102 loc) · 4.9 KB
/
CMakeLists.txt
File metadata and controls
121 lines (102 loc) · 4.9 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
cmake_minimum_required(VERSION 2.8.0)
project (FreeImage)
set(CMAKE_MODULE_PATH ${CMAKE_SOURCE_DIR}/CMakeModules)
# FreeImage version
set( FREEIMAGE_VERSION_MAIN 3)
set( FREEIMAGE_VERSION_MIDDLE 16)
set( FREEIMAGE_VERSION_LOWER 0)
set( FREEIMAGE_VERSION_MINOR 0)
set( FREEIMAGE_VERSION ${FREEIMAGE_VERSION_MAIN}.${FREEIMAGE_VERSION_MIDDLE}.${FREEIMAGE_VERSION_LOWER} )
set( FREEIMAGE_VERSION_BUILD ${FREEIMAGE_VERSION_MAIN}.${FREEIMAGE_VERSION_MIDDLE}.${FREEIMAGE_VERSION_LOWER}.${FREEIMAGE_VERSION_MINOR} )
option(FREEIMAGE_USE_SYSTEM_ZLIB "If ON build FreeImage with Zlib." ON)
option(FREEIMAGE_USE_SYSTEM_JPEG "If ON build FreeImage with jpeg." ON)
option(FREEIMAGE_USE_SYSTEM_PNG "If ON build FreeImage with png." ON)
option(FREEIMAGE_USE_SYSTEM_TIFF "If ON build FreeImage with tiff." ON)
option(INSTALL_WRAPPER "If ON install FreeImage wrapper." ON)
option(INSTALL_EXAMPLES "If ON install FreeImage examples." ON)
set(FREEIMAGE_STATIC_DEP_LIBRARIES OpenEXR_s LibMNG_s LibOpenJPEG_s LibRawLite_s LibWebP_s)
if(NOT FREEIMAGE_USE_SYSTEM_ZLIB)
option(FREEIMAGE_BUILD_ZLIB_DLL "If ON build Zlib as FreeImageZlib.dll. If OFF Zlib is staticly linked with FreeImage.")
if(NOT FREEIMAGE_BUILD_ZLIB_DLL)
set(FREEIMAGE_BUILD_ZLIB_STATIC ON)
list(APPEND FREEIMAGE_STATIC_DEP_LIBRARIES Zlib_s)
endif(NOT FREEIMAGE_BUILD_ZLIB_DLL)
if(NOT ZLIB_INCLUDE_DIR)
set(ZLIB_INCLUDE_DIR ${CMAKE_SOURCE_DIR}/Source/Zlib)
endif(NOT ZLIB_INCLUDE_DIR)
else(NOT FREEIMAGE_USE_SYSTEM_ZLIB)
find_package(ZLIB REQUIRED)
include_directories(${ZLIB_INCLUDE_DIRS})
endif(NOT FREEIMAGE_USE_SYSTEM_ZLIB)
if(NOT FREEIMAGE_USE_SYSTEM_JPEG)
option(FREEIMAGE_BUILD_JPEG_DLL "If ON build LibJPEG as FreeImageJPEG.dll. If OFF LibJPEG is staticly linked with FreeImage.")
if(NOT FREEIMAGE_BUILD_JPEG_DLL)
set(FREEIMAGE_BUILD_JPEG_STATIC ON)
list(APPEND FREEIMAGE_STATIC_DEP_LIBRARIES LibJPEG_s)
endif(NOT FREEIMAGE_BUILD_JPEG_DLL)
else(NOT FREEIMAGE_USE_SYSTEM_JPEG)
find_package(JPEG REQUIRED)
include_directories(${JPEG_INCLUDE_DIR})
endif(NOT FREEIMAGE_USE_SYSTEM_JPEG)
if(NOT FREEIMAGE_USE_SYSTEM_PNG)
option(FREEIMAGE_BUILD_PNG_DLL "If ON build LibPNG as FreeImagePNG.dll. If OFF LibPNG is staticly linked with FreeImage.")
if(NOT FREEIMAGE_BUILD_PNG_DLL)
set(FREEIMAGE_BUILD_PNG_STATIC ON)
list(APPEND FREEIMAGE_STATIC_DEP_LIBRARIES LibPNG_s)
endif(NOT FREEIMAGE_BUILD_PNG_DLL)
else(NOT FREEIMAGE_USE_SYSTEM_PNG)
find_package(PNG REQUIRED)
include_directories(${PNG_INCLUDE_DIRS})
endif(NOT FREEIMAGE_USE_SYSTEM_PNG)
if(NOT FREEIMAGE_USE_SYSTEM_TIFF)
option(FREEIMAGE_BUILD_TIFF_DLL "If ON build LibTIFF as FreeImageTIFF.dll. If OFF LibTIFF is staticly linked with FreeImage.")
if(NOT FREEIMAGE_BUILD_TIFF_DLL)
set(FREEIMAGE_BUILD_TIFF_STATIC ON)
list(APPEND FREEIMAGE_STATIC_DEP_LIBRARIES LibTIFF_s)
endif(NOT FREEIMAGE_BUILD_TIFF_DLL)
else(NOT FREEIMAGE_USE_SYSTEM_TIFF)
find_package(TIFF REQUIRED)
include_directories(${TIFF_INCLUDE_DIR})
endif(NOT FREEIMAGE_USE_SYSTEM_TIFF)
option(FREEIMAGE_DYNAMIC_C_RUNTIME "If ON build FreeImage with dynamicly linked C/C++ runtime. If OFF FreeImage is staticly linked with C/C++ runtime.")
if(NOT FREEIMAGE_DYNAMIC_C_RUNTIME)
# Set to link staticly with runtime
set(CMAKE_USER_MAKE_RULES_OVERRIDE
${CMAKE_CURRENT_SOURCE_DIR}/c_flag_overrides.cmake)
set(CMAKE_USER_MAKE_RULES_OVERRIDE_CXX
${CMAKE_CURRENT_SOURCE_DIR}/cxx_flag_overrides.cmake)
endif(NOT FREEIMAGE_DYNAMIC_C_RUNTIME)
# Check parameters
include(CheckIncludeFile)
include(CheckIncludeFileCXX)
include(CheckFunctionExists)
include(CheckTypeSize)
# Set default output dirs
set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/lib)
set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/lib)
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin)
# Set libraries for static or DLL build
if(FREEIMAGE_BUILD_STATIC)
set(FREEIMAGE_LIBRARIES FreeImage_s ${FREEIMAGE_STATIC_DEP_LIBRARIES})
set(FREEIMAGE_BUILD_FLAGS -DFREEIMAGE_LIB)
else(FREEIMAGE_BUILD_STATIC)
set(FREEIMAGE_LIBRARIES FreeImage)
set(FREEIMAGE_BUILD_DLL ON)
endif(FREEIMAGE_BUILD_STATIC)
set(FREEIMAGE_INCLUDE_DIRS ${CMAKE_SOURCE_DIR}/Source)
set(FREEIMAGE_LIBRARY_DIRS ${CMAKE_BINARY_DIR}/Lib)
add_subdirectory(Source)
add_subdirectory(TestAPI)
# Automatic ZIP packaging
set(CPACK_GENERATOR ZIP)
set(CPACK_PACKAGE_FILE_NAME FreeImage-${FREEIMAGE_VERSION_MAIN}.${FREEIMAGE_VERSION_MIDDLE}.${FREEIMAGE_VERSION_LOWER} )
set(CPACK_PACKAGE_NAME FreeImage )
set(CPACK_PACKAGE_VERSION "${FREEIMAGE_VERSION_MAIN}.${FREEIMAGE_VERSION_MIDDLE}.${FREEIMAGE_VERSION_LOWER}" )
include(CPack)
install(FILES license-fi.txt license-gplv3.txt README.minGW Whatsnew.txt DESTINATION .)
if(INSTALL_EXAMPLES)
install(DIRECTORY Examples DESTINATION . PATTERN "CVS" EXCLUDE)
endif()
if(INSTALL_WRAPPER)
install(DIRECTORY Wrapper DESTINATION . PATTERN "CVS" EXCLUDE)
endif()