diff options
author | Ben Campbell <ben@scumways.com> | 2016-11-09 10:17:01 +1300 |
---|---|---|
committer | Ben Campbell <ben@scumways.com> | 2016-11-09 10:20:46 +1300 |
commit | bd67d5d9c33ce20be3950013f63ee601a0697c6e (patch) | |
tree | 27e583bad3b06d1323b27499d07605551db7aaab | |
parent | 75ddeaf0083f0ad1cd4558f80ea94aeb830e376c (diff) | |
download | devil-bd67d5d9c33ce20be3950013f63ee601a0697c6e.tar.gz |
Turn src-IL into a self-contained cmake project
Top-level cmake project is now just a container for it's sub-projects.
Previously, src-IL relied on the parent project for configuration,
even though all those settings were specific to src-IL.
This commit also rolls in some changes to generate and install pkg-config
support.
-rw-r--r-- | DevIL/CMakeLists.txt | 97 | ||||
-rw-r--r-- | DevIL/data/IL.pc.in | 10 | ||||
-rw-r--r-- | DevIL/src-IL/CMakeLists.txt | 125 | ||||
-rw-r--r-- | DevIL/src-IL/cmake/FindLCMS.cmake (renamed from DevIL/cmake/FindLCMS.cmake) | 0 | ||||
-rw-r--r-- | DevIL/src-IL/cmake/FindNVTT.cmake (renamed from DevIL/cmake/FindNVTT.cmake) | 0 | ||||
-rw-r--r-- | DevIL/src-IL/cmake/FindOpenEXR.cmake (renamed from DevIL/cmake/FindOpenEXR.cmake) | 0 | ||||
-rw-r--r-- | DevIL/src-IL/cmake/README (renamed from DevIL/cmake/README) | 0 | ||||
-rw-r--r-- | DevIL/src-IL/pkgconfig/IL.pc.cmake.in | 12 | ||||
-rw-r--r-- | DevIL/src-IL/pkgconfig/README | 3 |
9 files changed, 133 insertions, 114 deletions
diff --git a/DevIL/CMakeLists.txt b/DevIL/CMakeLists.txt index f54e0e8d..5f3dd3c0 100644 --- a/DevIL/CMakeLists.txt +++ b/DevIL/CMakeLists.txt @@ -1,105 +1,8 @@ cmake_minimum_required(VERSION 2.6) - project(ImageLib) -# include our custom modules -set (CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/cmake") - -include (TestBigEndian) - -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) - - - - add_subdirectory(src-IL) #add_subdirectory(src-ILU) #add_subdirectory(src-ILUT) - - - diff --git a/DevIL/data/IL.pc.in b/DevIL/data/IL.pc.in deleted file mode 100644 index 932d27c3..00000000 --- a/DevIL/data/IL.pc.in +++ /dev/null @@ -1,10 +0,0 @@ -prefix=@prefix@ -exec_prefix=@exec_prefix@ - -Name: IL -Description: Developer's Image Library - IL part (just image loading) -Version: @VERSION@ -URL: http://openil.sourceforge.net -Libs: -L@libdir@ -lIL -Libs.private: @IL_LIBS@ -Cflags: -I@includedir@ @IL_CFLAGS@ 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 +) + diff --git a/DevIL/cmake/FindLCMS.cmake b/DevIL/src-IL/cmake/FindLCMS.cmake index 9830ba62..9830ba62 100644 --- a/DevIL/cmake/FindLCMS.cmake +++ b/DevIL/src-IL/cmake/FindLCMS.cmake diff --git a/DevIL/cmake/FindNVTT.cmake b/DevIL/src-IL/cmake/FindNVTT.cmake index d82192a7..d82192a7 100644 --- a/DevIL/cmake/FindNVTT.cmake +++ b/DevIL/src-IL/cmake/FindNVTT.cmake diff --git a/DevIL/cmake/FindOpenEXR.cmake b/DevIL/src-IL/cmake/FindOpenEXR.cmake index 3718d989..3718d989 100644 --- a/DevIL/cmake/FindOpenEXR.cmake +++ b/DevIL/src-IL/cmake/FindOpenEXR.cmake diff --git a/DevIL/cmake/README b/DevIL/src-IL/cmake/README index 2f50d7f2..2f50d7f2 100644 --- a/DevIL/cmake/README +++ b/DevIL/src-IL/cmake/README diff --git a/DevIL/src-IL/pkgconfig/IL.pc.cmake.in b/DevIL/src-IL/pkgconfig/IL.pc.cmake.in new file mode 100644 index 00000000..d97fe94b --- /dev/null +++ b/DevIL/src-IL/pkgconfig/IL.pc.cmake.in @@ -0,0 +1,12 @@ +prefix=@CMAKE_INSTALL_PREFIX@ +exec_prefix=${prefix} +includedir=${prefix}/include +libdir=${exec_prefix}/lib + +Name: IL +Description: Developer's Image Library - IL part (just image load/save) +Version: @VERSION@ +URL: http://openil.sourceforge.net +Cflags: -I${includedir} +Libs: -L${libdir} -lIL + diff --git a/DevIL/src-IL/pkgconfig/README b/DevIL/src-IL/pkgconfig/README new file mode 100644 index 00000000..e7cebc93 --- /dev/null +++ b/DevIL/src-IL/pkgconfig/README @@ -0,0 +1,3 @@ +IL.pc.cmake.in is the template file for building IL.pc, which +provides pkg-config support for IL. + |