Skip to content

Commit 16c4020

Browse files
committed
Updated cmake to be more friendly for subdirectory usage
1 parent f3d7d14 commit 16c4020

1 file changed

Lines changed: 22 additions & 19 deletions

File tree

CMakeLists.txt

Lines changed: 22 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,20 @@
11
cmake_minimum_required(VERSION 3.28)
22

3-
set_property(GLOBAL PROPERTY USE_FOLDERS ON)
4-
53
project(FreeImageRe)
64

75
set(FREEIMAGERE_MAJOR_VERSION "0")
86
set(FREEIMAGERE_MINOR_VERSION "6")
97

10-
set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin)
11-
set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin)
12-
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin)
8+
if (PROJECT_IS_TOP_LEVEL)
9+
set_property(GLOBAL PROPERTY USE_FOLDERS ON)
10+
11+
set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin)
12+
set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin)
13+
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin)
14+
15+
set(CMAKE_INSTALL_DOCDIR doc)
16+
endif()
1317

14-
set(CMAKE_INSTALL_DOCDIR doc)
1518

1619
set(CMAKE_POLICY_DEFAULT_CMP0077 "NEW")
1720
cmake_policy(SET CMP0079 NEW) # -> target_link_libraries() allows use with targets in other directories.
@@ -25,62 +28,62 @@ set(CMAKE_CXX_STANDARD 17)
2528
set(CMAKE_CXX_STANDARD_REQUIRED ON)
2629

2730
# External dependencies
28-
include(${CMAKE_SOURCE_DIR}/cmake/dependency.zlib.cmake)
29-
include(${CMAKE_SOURCE_DIR}/cmake/dependency.yato.cmake)
31+
include(${CMAKE_CURRENT_SOURCE_DIR}/cmake/dependency.zlib.cmake)
32+
include(${CMAKE_CURRENT_SOURCE_DIR}/cmake/dependency.yato.cmake)
3033

3134
option(FREEIMAGE_WITH_LIBJPEG "Compile with the LibJPEG backend" ON)
3235
if (FREEIMAGE_WITH_LIBJPEG)
33-
include(${CMAKE_SOURCE_DIR}/cmake/dependency.jpeg.cmake)
36+
include(${CMAKE_CURRENT_SOURCE_DIR}/cmake/dependency.jpeg.cmake)
3437
endif()
3538

3639
option(FREEIMAGE_WITH_LIBOPENJPEG "Compile with the LibOpenJPEG backend" ON)
3740
if (FREEIMAGE_WITH_LIBOPENJPEG)
38-
include(${CMAKE_SOURCE_DIR}/cmake/dependency.openjpeg.cmake)
41+
include(${CMAKE_CURRENT_SOURCE_DIR}/cmake/dependency.openjpeg.cmake)
3942
endif()
4043

4144
option(FREEIMAGE_WITH_LIBOPENEXR "Compile with the LibOpenEXR backend" ON)
4245
if (FREEIMAGE_WITH_LIBOPENEXR)
43-
include(${CMAKE_SOURCE_DIR}/cmake/dependency.openexr.cmake)
46+
include(${CMAKE_CURRENT_SOURCE_DIR}/cmake/dependency.openexr.cmake)
4447
endif()
4548

4649
option(FREEIMAGE_WITH_LIBPNG "Compile with the LibPNG backend" ON)
4750
if (FREEIMAGE_WITH_LIBPNG)
48-
include(${CMAKE_SOURCE_DIR}/cmake/dependency.png.cmake)
51+
include(${CMAKE_CURRENT_SOURCE_DIR}/cmake/dependency.png.cmake)
4952
endif()
5053

5154
option(FREEIMAGE_WITH_LIBTIFF "Compile with the LibTIFF backend" ON)
5255
if (FREEIMAGE_WITH_LIBTIFF)
53-
include(${CMAKE_SOURCE_DIR}/cmake/dependency.tiff.cmake)
56+
include(${CMAKE_CURRENT_SOURCE_DIR}/cmake/dependency.tiff.cmake)
5457
endif()
5558

5659
option(FREEIMAGE_WITH_LIBWEBP "Compile with the LibWEBP backend" ON)
5760
if (FREEIMAGE_WITH_LIBWEBP)
58-
include(${CMAKE_SOURCE_DIR}/cmake/dependency.webp.cmake)
61+
include(${CMAKE_CURRENT_SOURCE_DIR}/cmake/dependency.webp.cmake)
5962
endif()
6063

6164
option(FREEIMAGE_WITH_LIBRAW "Compile with the LibRAW backend" ON)
6265
if (FREEIMAGE_WITH_LIBRAW)
63-
include(${CMAKE_SOURCE_DIR}/cmake/dependency.raw.cmake)
66+
include(${CMAKE_CURRENT_SOURCE_DIR}/cmake/dependency.raw.cmake)
6467
endif()
6568

6669
option(FREEIMAGE_WITH_LIBHEIF "Compile with the LibHEIF backend" ON)
6770
if (FREEIMAGE_WITH_LIBHEIF)
68-
include(${CMAKE_SOURCE_DIR}/cmake/dependency.heif.cmake)
71+
include(${CMAKE_CURRENT_SOURCE_DIR}/cmake/dependency.heif.cmake)
6972
endif()
7073

7174
option(FREEIMAGE_WITH_PYTHON_BINDINGS "Build pythin bindings" OFF)
7275
if (FREEIMAGE_WITH_PYTHON_BINDINGS)
7376
find_package(Python3 COMPONENTS Development REQUIRED)
74-
include(${CMAKE_SOURCE_DIR}/cmake/dependency.pybind.cmake)
77+
include(${CMAKE_CURRENT_SOURCE_DIR}/cmake/dependency.pybind.cmake)
7578
endif()
7679

7780
# Internal dependencies
7881
option(FREEIMAGE_WITH_LIBJXR "Compile with the LibJXR backend" ON)
7982
if (FREEIMAGE_WITH_LIBJXR)
80-
add_subdirectory(${CMAKE_SOURCE_DIR}/3rdParty/LibJXR ${CMAKE_BINARY_DIR}/LibJXR)
83+
add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/3rdParty/LibJXR ${CMAKE_BINARY_DIR}/LibJXR)
8184
endif()
8285

83-
set(FREEIMAGE_INCLUDE_DIR ${CMAKE_SOURCE_DIR}/Source)
86+
set(FREEIMAGE_INCLUDE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/Source)
8487

8588
add_definitions("-DFREEIMAGERE_MAJOR_VERSION=${FREEIMAGERE_MAJOR_VERSION}")
8689
add_definitions("-DFREEIMAGERE_MINOR_VERSION=${FREEIMAGERE_MINOR_VERSION}")

0 commit comments

Comments
 (0)