diff options
Diffstat (limited to 'DevIL/src-IL/CMakeLists.txt')
-rw-r--r-- | DevIL/src-IL/CMakeLists.txt | 125 |
1 files changed, 118 insertions, 7 deletions
diff --git a/DevIL/src-IL/CMakeLists.txt b/DevIL/src-IL/CMakeLists.txt index 49412c22..9acafd4b 100644 --- a/DevIL/src-IL/CMakeLists.txt +++ b/DevIL/src-IL/CMakeLists.txt @@ -1,5 +1,12 @@ +cmake_minimum_required(VERSION 2.6) + project(DevIL) +# include our custom modules +set (CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/cmake") +include (TestBigEndian) + + file(GLOB DevIL_SRCS src/*.c src/*.cpp) file(GLOB DevIL_INC include/*.h ../include/config.h ../include/IL/devil_internal_exports.h ../include/IL/il.h) file(GLOB DevIL_RSRC) @@ -7,14 +14,9 @@ file(GLOB DevIL_TXT) include_directories( include ../include ) -# generate config.h -configure_file(${CMAKE_CURRENT_SOURCE_DIR}/include/config.h.cmake.in ${CMAKE_CURRENT_SOURCE_DIR}/include/config.h) - -# # for windows add the .def and .rc files to the source list -# if(WIN32) - add_definitions(-DIL_USE_PRAGMA_LIBS) + add_definitions(-DIL_USE_PRAGMA_LIBS) if(BUILD_SHARED_LIBS) #ADD_DEFINITIONS(-DIL_DLL -DMNG_DLL -DMNG_USE_DLL -DJPEGDLL) add_definitions(-DIL_DLL -DJPEGSTATIC) @@ -40,6 +42,98 @@ else(BUILD_SHARED_LIBS) endif(BUILD_SHARED_LIBS) + +option(BUILD_SHARED_LIBS "Build with shared (.DLL .SO) libraries." ON) + +# various compiler stuff +test_big_endian(WORDS_BIGENDIAN) + + +# 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) + +# TODO: check for libmng, others? + + +# TODO: utx doesn't currently compile (as C, anyway) +set(IL_NO_UTX 1) + +# TODO: WDP requires Microsoft HD Photo Device Porting Kit 1.0 +set(IL_NO_WDP 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) + set(IL_NO_PNG 1) +endif(PNG_FOUND) + +if(TIFF_FOUND) + option(IL_NO_TIF "Disable TIFF support (libtiff)" 0) +else(TIFF_FOUND) + set(IL_NO_TIF 1) +endif(TIFF_FOUND) + +if(JPEG_FOUND) + option(IL_NO_JPG "Disable JPEG support (libjpeg)" 0) +else(JPEG_FOUND) + set(IL_NO_JPG 1) +endif(JPEG_FOUND) + +if(OPENEXR_FOUND) + option(IL_NO_EXR "Disable EXR support (openEXR)" 0) +else(OPENEXR_FOUND) + set(IL_NO_EXR 1) +endif(OPENEXR_FOUND) + +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) + set(IL_NO_MNG 1) +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) + +if(NVTT_FOUND) + option(IL_USE_DXTC_NVIDIA "Use Nvidia Texture Tools (NVTT) for DXTC support" 1) +else(NVTT_FOUND) + set(IL_USE_DXTC_NVIDIA 0) +endif(NVTT_FOUND) + +if(SQUISH_FOUND) + option(IL_USE_DXTC_SQUISH "Use libsquish for DXTC support" 1) +else(SQUISH_FOUND) + set(IL_USE_DXTC_SQUISH 0) +endif(SQUISH_FOUND) + + + + + + + # configure include dirs and linkage for the optional external libs set(libs "") set(incs "") @@ -95,12 +189,29 @@ endif(IL_USE_DXTC_NVIDIA) include_directories(${incs}) target_link_libraries(IL ${libs}) +# generate config.h +configure_file(${CMAKE_CURRENT_SOURCE_DIR}/include/config.h.cmake.in ${CMAKE_CURRENT_SOURCE_DIR}/include/config.h) -# Installation + +# generate pkg-config file +# TODO: add Requires.private or Libs.private +# (needed to support static linking?) +# TODO: sort out version number +configure_file( pkgconfig/IL.pc.cmake.in + ${CMAKE_CURRENT_BINARY_DIR}/IL.pc @ONLY) + + +# Installation install (TARGETS IL ARCHIVE DESTINATION lib LIBRARY DESTINATION lib RUNTIME DESTINATION bin ) install (FILES ../include/IL/il.h DESTINATION include/IL) + +install(FILES + ${CMAKE_CURRENT_BINARY_DIR}/IL.pc + DESTINATION lib/pkgconfig +) + |