-
Notifications
You must be signed in to change notification settings - Fork 16
Expand file tree
/
Copy pathCMakeLists.txt
More file actions
109 lines (79 loc) · 3.43 KB
/
CMakeLists.txt
File metadata and controls
109 lines (79 loc) · 3.43 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
cmake_minimum_required(VERSION 4.2)
project(FreeImageRe)
set(FREEIMAGERE_MAJOR_VERSION "4")
set(FREEIMAGERE_MINOR_VERSION "2")
set(FREEIMAGERE_PATCH_VERSION "1")
if (PROJECT_IS_TOP_LEVEL)
set_property(GLOBAL PROPERTY USE_FOLDERS ON)
set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin)
set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin)
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin)
set(CMAKE_INSTALL_DOCDIR doc)
endif()
set(CMAKE_POLICY_DEFAULT_CMP0077 "NEW")
cmake_policy(SET CMP0079 NEW) # -> target_link_libraries() allows use with targets in other directories.
if (UNIX)
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fPIC")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fPIC")
endif()
set(CMAKE_CXX_STANDARD 20)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
# External dependencies
set(EXTERNALPROJECT_INCLUDE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/cmake)
include(${EXTERNALPROJECT_INCLUDE_DIR}/dependency.zlib.cmake)
include(${EXTERNALPROJECT_INCLUDE_DIR}/dependency.yato.cmake)
option(FREEIMAGE_WITH_LIBJPEG "Compile with the LibJPEG backend" ON)
if (FREEIMAGE_WITH_LIBJPEG)
include(${EXTERNALPROJECT_INCLUDE_DIR}/dependency.jpeg.cmake)
endif()
option(FREEIMAGE_WITH_LIBOPENJPEG "Compile with the LibOpenJPEG backend" ON)
if (FREEIMAGE_WITH_LIBOPENJPEG)
include(${EXTERNALPROJECT_INCLUDE_DIR}/dependency.openjpeg.cmake)
endif()
option(FREEIMAGE_WITH_LIBOPENEXR "Compile with the LibOpenEXR backend" ON)
if (FREEIMAGE_WITH_LIBOPENEXR)
include(${EXTERNALPROJECT_INCLUDE_DIR}/dependency.openexr.cmake)
endif()
option(FREEIMAGE_WITH_LIBPNG "Compile with the LibPNG backend" ON)
if (FREEIMAGE_WITH_LIBPNG)
include(${EXTERNALPROJECT_INCLUDE_DIR}/dependency.png.cmake)
endif()
option(FREEIMAGE_WITH_LIBTIFF "Compile with the LibTIFF backend" ON)
if (FREEIMAGE_WITH_LIBTIFF)
include(${EXTERNALPROJECT_INCLUDE_DIR}/dependency.tiff.cmake)
endif()
option(FREEIMAGE_WITH_LIBWEBP "Compile with the LibWEBP backend" ON)
if (FREEIMAGE_WITH_LIBWEBP)
include(${EXTERNALPROJECT_INCLUDE_DIR}/dependency.webp.cmake)
endif()
option(FREEIMAGE_WITH_LIBRAW "Compile with the LibRAW backend" ON)
if (FREEIMAGE_WITH_LIBRAW)
include(${EXTERNALPROJECT_INCLUDE_DIR}/dependency.raw.cmake)
endif()
option(FREEIMAGE_WITH_LIBHEIF "Compile with the LibHEIF backend" ON)
if (FREEIMAGE_WITH_LIBHEIF)
include(${EXTERNALPROJECT_INCLUDE_DIR}/dependency.heif.cmake)
endif()
option(FREEIMAGE_WITH_LIBJPEGXL "Compile with the LibJpegXL backend" ON)
if (FREEIMAGE_WITH_LIBJPEGXL)
include(${EXTERNALPROJECT_INCLUDE_DIR}/dependency.jpegxl.cmake)
endif()
option(FREEIMAGE_WITH_PYTHON_BINDINGS "Build pythin bindings" OFF)
if (FREEIMAGE_WITH_PYTHON_BINDINGS)
find_package(Python3 COMPONENTS Development REQUIRED)
include(${EXTERNALPROJECT_INCLUDE_DIR}/dependency.pybind.cmake)
endif()
# Internal dependencies
option(FREEIMAGE_WITH_LIBJXR "Compile with the LibJXR backend" ON)
if (FREEIMAGE_WITH_LIBJXR)
add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/3rdParty/LibJXR ${CMAKE_CURRENT_BINARY_DIR}/LibJXR)
endif()
set(FREEIMAGE_INCLUDE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/Source)
add_definitions("-DFREEIMAGERE_MAJOR_VERSION=${FREEIMAGERE_MAJOR_VERSION}")
add_definitions("-DFREEIMAGERE_MINOR_VERSION=${FREEIMAGERE_MINOR_VERSION}")
add_definitions("-DFREEIMAGERE_PATCH_VERSION=${FREEIMAGERE_PATCH_VERSION}")
add_subdirectory(Source)
option(FREEIMAGE_BUILD_TESTS "Build test executables" OFF)
if(FREEIMAGE_BUILD_TESTS)
add_subdirectory(TestAPI)
endif()