From 181cf9a6c480e043f850b9c19d57d70d49a60329 Mon Sep 17 00:00:00 2001 From: Sam Serrels Date: Mon, 9 Oct 2017 17:59:30 +0100 Subject: [PATCH 1/4] Add CMake option to skip building ILU/ILUT --- DevIL/CMakeLists.txt | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) diff --git a/DevIL/CMakeLists.txt b/DevIL/CMakeLists.txt index e342f93d..603f29b3 100644 --- a/DevIL/CMakeLists.txt +++ b/DevIL/CMakeLists.txt @@ -5,8 +5,21 @@ project(ImageLib) set (CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/cmake/Modules") add_subdirectory(src-IL) -add_subdirectory(src-ILU) -add_subdirectory(src-ILUT) + +option(IL_BUILD_ILU "build ILU library" ON) +if (IL_BUILD_ILU) + add_subdirectory(src-ILU) +endif() + +option(IL_BUILD_ILUT "build ILUT library" ON) +#Could avoid this extra check with CMakeDependentOption +#But that would require bumping cmake version to 3.1 +if (IL_BUILD_ILUT AND (NOT IL_BUILD_ILU)) + message(FATAL_ERROR "Can't build ILUT without ILU. Enable IL_BUILD_ILU") +elseif(IL_BUILD_ILUT) + add_subdirectory(src-ILUT) +endif() + option(IL_TESTS "build DevIL tests" ON) if (IL_TESTS) ENABLE_TESTING() From 4a927ab42ddc0a81fdbd2281f98de5c2a67d8b49 Mon Sep 17 00:00:00 2001 From: Sam Serrels Date: Tue, 10 Oct 2017 12:52:03 +0100 Subject: [PATCH 2/4] Moved Cmake output directory code to main cmake file. Changed to options CMAKE scope rather than target scope, which allows parent cmake projects to override output directory --- DevIL/CMakeLists.txt | 24 ++++++++++++++++++++++++ DevIL/src-IL/CMakeLists.txt | 19 ------------------- DevIL/src-ILU/CMakeLists.txt | 22 ---------------------- DevIL/src-ILUT/CMakeLists.txt | 21 --------------------- 4 files changed, 24 insertions(+), 62 deletions(-) diff --git a/DevIL/CMakeLists.txt b/DevIL/CMakeLists.txt index 603f29b3..7763ff60 100644 --- a/DevIL/CMakeLists.txt +++ b/DevIL/CMakeLists.txt @@ -4,6 +4,30 @@ project(ImageLib) # include our custom modules set (CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/cmake/Modules") + +# From http://stackoverflow.com/questions/17317350/compiling-32-and-64-bit +if( CMAKE_SIZEOF_VOID_P EQUAL 8 ) + MESSAGE( "DevIL, 64 bit compiler detected" ) + SET( EX_PLATFORM 64 ) + SET( EX_PLATFORM_NAME "x64" ) +else( CMAKE_SIZEOF_VOID_P EQUAL 8 ) + MESSAGE( "DevIL, 32 bit compiler detected" ) + SET( EX_PLATFORM 32 ) + SET( EX_PLATFORM_NAME "x86" ) +endif( CMAKE_SIZEOF_VOID_P EQUAL 8 ) + +# Sets the output folders +set(LIBDIR "../lib/") +set(LIBDIR "${LIBDIR}${EX_PLATFORM_NAME}") +if(UNICODE) + set(LIBDIR "${LIBDIR}/unicode") +endif(UNICODE) + +# Sets the output folders +set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${LIBDIR}) +set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${LIBDIR}) +set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${LIBDIR}) + add_subdirectory(src-IL) option(IL_BUILD_ILU "build ILU library" ON) diff --git a/DevIL/src-IL/CMakeLists.txt b/DevIL/src-IL/CMakeLists.txt index 3cda85cf..1adf2e63 100644 --- a/DevIL/src-IL/CMakeLists.txt +++ b/DevIL/src-IL/CMakeLists.txt @@ -15,16 +15,6 @@ file(GLOB DevIL_INC include/*.h ../include/config.h ../include/IL/devil_internal file(GLOB DevIL_RSRC) file(GLOB DevIL_TXT) -# From http://stackoverflow.com/questions/17317350/compiling-32-and-64-bit -if( CMAKE_SIZEOF_VOID_P EQUAL 8 ) - MESSAGE( "DevIL, 64 bit compiler detected" ) - SET( EX_PLATFORM 64 ) - SET( EX_PLATFORM_NAME "x64" ) -else( CMAKE_SIZEOF_VOID_P EQUAL 8 ) - MESSAGE( "DevIL, 32 bit compiler detected" ) - SET( EX_PLATFORM 32 ) - SET( EX_PLATFORM_NAME "x86" ) -endif( CMAKE_SIZEOF_VOID_P EQUAL 8 ) include_directories( include ../include ) @@ -209,15 +199,6 @@ if(NOT ${IL_SQUISH_LIB}) endif(LIBSQUISH_FOUND) endif(NOT ${IL_SQUISH_LIB}) -# Sets the output folders -set(LIBDIR "../lib/") -set(LIBDIR "${LIBDIR}${EX_PLATFORM_NAME}") -if(UNICODE) - set(LIBDIR "${LIBDIR}/unicode") -endif(UNICODE) -set_target_properties(IL PROPERTIES RUNTIME_OUTPUT_DIRECTORY ${LIBDIR}) -set_target_properties(IL PROPERTIES LIBRARY_OUTPUT_DIRECTORY ${LIBDIR}) -set_target_properties(IL PROPERTIES ARCHIVE_OUTPUT_DIRECTORY ${LIBDIR}) if(MSVC) # Linux uses libIL.so, libILU.so, and libILUT.so, but Windows uses diff --git a/DevIL/src-ILU/CMakeLists.txt b/DevIL/src-ILU/CMakeLists.txt index 44b9531b..f57c6837 100644 --- a/DevIL/src-ILU/CMakeLists.txt +++ b/DevIL/src-ILU/CMakeLists.txt @@ -6,18 +6,6 @@ file(GLOB ILU_SRCS src/*.cpp) file(GLOB ILU_INC include/*.h ../include/IL/devil_internal_exports.h ../include/IL/ilu.h) file(GLOB ILU_RSRC) -# From http://stackoverflow.com/questions/17317350/compiling-32-and-64-bit -MESSAGE(" ") -if( CMAKE_SIZEOF_VOID_P EQUAL 8 ) - MESSAGE( "64 bit compiler detected" ) - SET( EX_PLATFORM 64 ) - SET( EX_PLATFORM_NAME "x64" ) -else( CMAKE_SIZEOF_VOID_P EQUAL 8 ) - MESSAGE( "32 bit compiler detected" ) - SET( EX_PLATFORM 32 ) - SET( EX_PLATFORM_NAME "x86" ) -endif( CMAKE_SIZEOF_VOID_P EQUAL 8 ) - include_directories( include ../include ) # for windows add the .def and .rc files to the source list @@ -58,16 +46,6 @@ target_link_libraries(ILU configure_file( pkgconfig/ILU.pc.cmake.in ${CMAKE_CURRENT_BINARY_DIR}/ILU.pc @ONLY) -# Sets the output folders -set(LIBDIR "../lib/") -set(LIBDIR "${LIBDIR}${EX_PLATFORM_NAME}") -if(UNICODE) - set(LIBDIR "${LIBDIR}/unicode") -endif(UNICODE) -set_target_properties(ILU PROPERTIES RUNTIME_OUTPUT_DIRECTORY ${LIBDIR}) -set_target_properties(ILU PROPERTIES LIBRARY_OUTPUT_DIRECTORY ${LIBDIR}) -set_target_properties(ILU PROPERTIES ARCHIVE_OUTPUT_DIRECTORY ${LIBDIR}) - if(UNICODE) MESSAGE("Compiling ILU Unicode") add_definitions(-DUNICODE -D_UNICODE) diff --git a/DevIL/src-ILUT/CMakeLists.txt b/DevIL/src-ILUT/CMakeLists.txt index 63662bc6..8506875d 100644 --- a/DevIL/src-ILUT/CMakeLists.txt +++ b/DevIL/src-ILUT/CMakeLists.txt @@ -6,18 +6,6 @@ file(GLOB ILUT_SRCS src/*.cpp) file(GLOB ILUT_INC include/*.h ../include/IL/devil_internal_exports.h ../include/IL/ilut.h) file(GLOB ILUT_RSRC) -# From http://stackoverflow.com/questions/17317350/compiling-32-and-64-bit -MESSAGE(" ") -if( CMAKE_SIZEOF_VOID_P EQUAL 8 ) - MESSAGE( "64 bit compiler detected" ) - SET( EX_PLATFORM 64 ) - SET( EX_PLATFORM_NAME "x64" ) -else( CMAKE_SIZEOF_VOID_P EQUAL 8 ) - MESSAGE( "32 bit compiler detected" ) - SET( EX_PLATFORM 32 ) - SET( EX_PLATFORM_NAME "x86" ) -endif( CMAKE_SIZEOF_VOID_P EQUAL 8 ) - include_directories( include ../include ) # Find glut @@ -78,15 +66,6 @@ target_link_libraries(ILUT configure_file( pkgconfig/ILUT.pc.cmake.in ${CMAKE_CURRENT_BINARY_DIR}/ILUT.pc @ONLY) -# Sets the output folders -set(LIBDIR "../lib/") -set(LIBDIR "${LIBDIR}${EX_PLATFORM_NAME}") -if(UNICODE) - set(LIBDIR "${LIBDIR}/unicode") -endif(UNICODE) -set_target_properties(ILUT PROPERTIES RUNTIME_OUTPUT_DIRECTORY ${LIBDIR}) -set_target_properties(ILUT PROPERTIES LIBRARY_OUTPUT_DIRECTORY ${LIBDIR}) -set_target_properties(ILUT PROPERTIES ARCHIVE_OUTPUT_DIRECTORY ${LIBDIR}) if(UNICODE) MESSAGE("Compiling ILUT Unicode") From aa98add5e15f90e263f069a997920f656773ccf7 Mon Sep 17 00:00:00 2001 From: Sam Serrels Date: Tue, 10 Oct 2017 13:34:32 +0100 Subject: [PATCH 3/4] Added Cmake option IL_BUILD_DIR, to override lib output location --- DevIL/CMakeLists.txt | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/DevIL/CMakeLists.txt b/DevIL/CMakeLists.txt index 7763ff60..553bd797 100644 --- a/DevIL/CMakeLists.txt +++ b/DevIL/CMakeLists.txt @@ -23,10 +23,12 @@ if(UNICODE) set(LIBDIR "${LIBDIR}/unicode") endif(UNICODE) +set(IL_RUNTIME_DIR ${LIBDIR} CACHE PATH "Output location for Devil .dlls/.so") +set(IL_LIBRARY_DIR ${LIBDIR} CACHE PATH "Output location for Devil .libs") # Sets the output folders -set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${LIBDIR}) -set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${LIBDIR}) -set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${LIBDIR}) +set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${IL_BUILD_DIR}) +set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${IL_LIBRARY_DIR}) +set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${IL_LIBRARY_DIR}) add_subdirectory(src-IL) From f9ee8110be16e254b4d46dc67edb615dd5fc7c6f Mon Sep 17 00:00:00 2001 From: Sam Serrels Date: Tue, 10 Oct 2017 14:08:54 +0100 Subject: [PATCH 4/4] fix typo --- DevIL/CMakeLists.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/DevIL/CMakeLists.txt b/DevIL/CMakeLists.txt index 553bd797..05dc2832 100644 --- a/DevIL/CMakeLists.txt +++ b/DevIL/CMakeLists.txt @@ -26,7 +26,7 @@ endif(UNICODE) set(IL_RUNTIME_DIR ${LIBDIR} CACHE PATH "Output location for Devil .dlls/.so") set(IL_LIBRARY_DIR ${LIBDIR} CACHE PATH "Output location for Devil .libs") # Sets the output folders -set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${IL_BUILD_DIR}) +set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${IL_RUNTIME_DIR}) set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${IL_LIBRARY_DIR}) set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${IL_LIBRARY_DIR})