summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBen Campbell <ben@scumways.com>2015-07-22 23:59:15 +1200
committerBen Campbell <ben@scumways.com>2015-07-22 23:59:15 +1200
commit99a0d1cca0ed67869ae2e440b9b905cb53a1c1f0 (patch)
tree346a68e8033362a222b97f290171a164f93168a0
parent0deab07d3c6c46af1c42f36486aed85e4552d01b (diff)
downloaddevil-99a0d1cca0ed67869ae2e440b9b905cb53a1c1f0.tar.gz
cmake: set inc dirs and linkage for optional libs
-rw-r--r--DevIL/CMakeLists.txt18
-rw-r--r--DevIL/src-IL/CMakeLists.txt71
2 files changed, 54 insertions, 35 deletions
diff --git a/DevIL/CMakeLists.txt b/DevIL/CMakeLists.txt
index 91db6ddc..aafb6127 100644
--- a/DevIL/CMakeLists.txt
+++ b/DevIL/CMakeLists.txt
@@ -18,13 +18,12 @@ OPTION(BUILD_SHARED_LIBS "Build with shared (.DLL .SO) libraries." ON)
test_big_endian(WORDS_BIGENDIAN)
-# check availability of external libs
+# check availability of optional external libs
find_package(PNG)
find_package(TIFF)
find_package(JPEG)
find_package(Jasper)
find_package(Squish)
-
find_package(NVTT) # NVidia texture tools
find_package(OpenEXR)
find_package(LCMS)
@@ -37,6 +36,8 @@ set(IL_NO_UTX 1)
# TODO: add options for manually configuring formats (eg IL_NO_GAMES)
+
+# present options for the libraries which are available
if(PNG_FOUND)
option(IL_NO_PNG "Disable PNG support (libpng)" 0)
else(PNG_FOUND)
@@ -61,14 +62,12 @@ else(OPENEXR_FOUND)
set(IL_NO_EXR 1)
endif(OPENEXR_FOUND)
-# jpeg2000 support requires libjasper
if(JASPER_FOUND)
option(IL_NO_JP2 "Disable JP2 support (libjasper)" 0)
else(JASPER_FOUND)
set(IL_NO_JP2 1)
endif(JASPER_FOUND)
-
if(MNG_FOUND)
option(IL_NO_MNG "Disable MNG support (libmng)" 0)
else(MNG_FOUND)
@@ -77,17 +76,12 @@ endif(MNG_FOUND)
if(LCMS_FOUND)
option(IL_NO_LCMS "Disable LCMS support (Little CMS)" 0)
+ #TODO: be more clever about lcms include... it smells wrong.
+ option(LCMS_NODIRINCLUDE "Include lcms.h instead of lcms/lcms.h" 1)
else(LCMS_FOUND)
set(IL_NO_LCMS 1)
endif(LCMS_FOUND)
-
-set(LCMS_NODIRINCLUDE 1)
-
-if(NVTT_FOUND)
- set(IL_USE_DXTC_NVIDIA ON)
-endif(NVTT_FOUND)
-
if(NVTT_FOUND)
option(IL_USE_DXTC_NVIDIA "Use Nvidia Texture Tools (NVTT) for DXTC support" 1)
else(NVTT_FOUND)
@@ -103,8 +97,6 @@ endif(SQUISH_FOUND)
-
-
# generate the config.h
configure_file(${CMAKE_CURRENT_SOURCE_DIR}/include/IL/config.h.cmake.in ${CMAKE_CURRENT_SOURCE_DIR}/include/IL/config.h)
diff --git a/DevIL/src-IL/CMakeLists.txt b/DevIL/src-IL/CMakeLists.txt
index 56819b8b..08a75a14 100644
--- a/DevIL/src-IL/CMakeLists.txt
+++ b/DevIL/src-IL/CMakeLists.txt
@@ -45,36 +45,63 @@ ELSE(BUILD_SHARED_LIBS)
ENDIF(BUILD_SHARED_LIBS)
+# configure include dirs and linkage for the optional external libs
+set(libs "")
+set(incs "")
+
+if(NOT IL_NO_PNG)
+ list(APPEND incs ${PNG_INCLUDE_DIRS} )
+ list(APPEND libs ${PNG_LIBRARIES} )
+endif(NOT IL_NO_PNG)
+
+if(NOT IL_NO_JPG)
+ list(APPEND incs ${JPEG_INCLUDE_DIRS} )
+ list(APPEND libs ${JPEG_LIBRARIES} )
+endif(NOT IL_NO_JPG)
+
+if(NOT IL_NO_TIF)
+ list(APPEND incs ${TIFF_INCLUDE_DIRS} )
+ list(APPEND libs ${TIFF_LIBRARIES} )
+endif(NOT IL_NO_TIF)
+
+if(NOT IL_NO_JP2)
+ list(APPEND incs ${JASPER_INCLUDE_DIR} )
+ list(APPEND libs ${JASPER_LIBRARIES} )
+endif(NOT IL_NO_JP2)
+
+if(NOT IL_NO_MNG)
+ list(APPEND incs ${MNG_INCLUDE_DIRS} )
+ list(APPEND libs ${MNG_LIBRARIES} )
+endif(NOT IL_NO_MNG)
-# include and link external libs
if(NOT IL_NO_LCMS)
- include_directories( ${LCMS_INCLUDE_DIR} )
- target_link_libraries( DevIL ${LCMS_LIBRARIES} )
+ list(APPEND incs ${LCMS_INCLUDE_DIRS} )
+ list(APPEND libs ${LCMS_LIBRARIES} )
endif(NOT IL_NO_LCMS)
+if(NOT IL_NO_EXR)
+ list(APPEND incs ${OPENEXR_INCLUDE_DIRS} )
+ list(APPEND libs ${OPENEXR_LIBRARIES} )
+endif(NOT IL_NO_EXR)
+
+if(IL_USE_DXTC_NVIDIA)
+ list(APPEND incs ${NVTT_INCLUDE_DIR} )
+ list(APPEND libs ${NVTT_LIBRARY} )
+endif(IL_USE_DXTC_NVIDIA)
+
+if(IL_USE_DXTC_NVIDIA)
+ list(APPEND incs ${NVTT_INCLUDE_DIR} )
+ list(APPEND libs ${NVTT_LIBRARY} )
+endif(IL_USE_DXTC_NVIDIA)
+
+# TODO: does Squish require linking/includes?
-INCLUDE_DIRECTORIES(
- ${PNG_INCLUDE_DIRS}
- ${TIFF_INCLUDE_DIR}
- ${JPEG_INCLUDE_DIR}
- ${JASPER_INCLUDE_DIR}
- ${LCMS_INCLUDE_DIRS}
- ${OPENEXR_INCLUDE_DIR}
- ${NVTT_INCLUDE_DIR}
-)
+include_directories(${incs})
+target_link_libraries(DevIL ${libs})
-#TARGET_LINK_LIBRARIES(
-# DevIL
- # ${PNG_LIBRARIES}
- # ${JPEG_LIBRARIES}
- #${TIFF_LIBRARIES}
- #${JASPER_LIBRARIES}
- #${LCMS_LIBRARIES}
- #${OPENEXR_LIBRARIES}
- #${NVTT_LIBRARY}
- #)
+# Installation
install (TARGETS DevIL
ARCHIVE DESTINATION lib