From def19e7de4b34e6182e8f346cd14952424c574aa Mon Sep 17 00:00:00 2001 From: GekkieHenkie <33967804+GekkieHenkie@users.noreply.github.com> Date: Tue, 9 Apr 2019 23:22:16 +0200 Subject: [PATCH 1/2] Update library install directories in Cmake Currently (well, at least on Windows), the created DLL files aren't installed to the correct directory after a build. The DLL files are installed to the 'lib' directory. Which actually is the place for the static library or the shared library's symbols file (.lib). The shared library runtimes should be installed to the 'bin' output directory, as proposed in this PR. See the ```CONFIGURATIONS``` option in [Install command introduction in the CMake manual](https://cmake.org/cmake/help/v3.14/command/install.html#introduction) for an example. It's considered best practice and follows convention as used in other notable libraries as libpng, libogg/vorbis, freetype, zlib, tinyxml, etc, to install the runtime output in the 'bin' directory. --- CMakeLists.txt | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 0a720dd..0e20476 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -49,7 +49,7 @@ IF ( glew-cmake_BUILD_STATIC ) DEBUG_POSTFIX d ) TARGET_INCLUDE_DIRECTORIES( libglew_static PUBLIC ${INCLUDE_DIR} ) TARGET_LINK_LIBRARIES( libglew_static ${GL_LIBRARY} ${PLATFORM_SPECIFIC_LIBRARIES} ) - INSTALL( TARGETS libglew_static DESTINATION lib ) + INSTALL( TARGETS libglew_static ARCHIVE DESTINATION lib ) ENDIF ( ) IF ( glew-cmake_BUILD_MULTI_CONTEXT ) @@ -61,7 +61,7 @@ IF ( glew-cmake_BUILD_STATIC ) TARGET_COMPILE_DEFINITIONS( libglewmx_static INTERFACE GLEW_MX) TARGET_INCLUDE_DIRECTORIES( libglewmx_static PUBLIC ${INCLUDE_DIR} ) TARGET_LINK_LIBRARIES( libglewmx_static ${GL_LIBRARY} ${PLATFORM_SPECIFIC_LIBRARIES} ) - INSTALL( TARGETS libglewmx_static DESTINATION lib ) + INSTALL( TARGETS libglewmx_static ARCHIVE DESTINATION lib ) ENDIF ( ) ENDIF ( ) @@ -76,7 +76,8 @@ IF ( glew-cmake_BUILD_SHARED ) TARGET_INCLUDE_DIRECTORIES( libglew_shared PUBLIC ${INCLUDE_DIR} ) TARGET_LINK_LIBRARIES( libglew_shared ${GL_LIBRARY} ${PLATFORM_SPECIFIC_LIBRARIES} ) - INSTALL( TARGETS libglew_shared DESTINATION lib ) + INSTALL( TARGETS libglew_shared ARCHIVE DESTINATION lib ) + INSTALL( TARGETS libglew_shared RUNTIME DESTINATION bin ) ENDIF ( ) IF ( glew-cmake_BUILD_MULTI_CONTEXT ) @@ -90,7 +91,8 @@ IF ( glew-cmake_BUILD_SHARED ) TARGET_COMPILE_DEFINITIONS( libglewmx_shared INTERFACE GLEW_MX) TARGET_INCLUDE_DIRECTORIES( libglewmx_shared PUBLIC ${INCLUDE_DIR} ) TARGET_LINK_LIBRARIES( libglewmx_shared ${GL_LIBRARY} ${PLATFORM_SPECIFIC_LIBRARIES} ) - INSTALL( TARGETS libglewmx_shared DESTINATION lib ) + INSTALL( TARGETS libglewmx_shared ARCHIVE DESTINATION lib ) + INSTALL( TARGETS libglewmx_shared RUNTIME DESTINATION bin ) ENDIF ( ) ENDIF ( ) From 5a7232fc53496fe667d53fc9c98206b644befd12 Mon Sep 17 00:00:00 2001 From: GekkieHenkie <33967804+GekkieHenkie@users.noreply.github.com> Date: Tue, 9 Apr 2019 23:59:48 +0200 Subject: [PATCH 2/2] Install directories set in single statement --- CMakeLists.txt | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 0e20476..aaa6d09 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -76,8 +76,8 @@ IF ( glew-cmake_BUILD_SHARED ) TARGET_INCLUDE_DIRECTORIES( libglew_shared PUBLIC ${INCLUDE_DIR} ) TARGET_LINK_LIBRARIES( libglew_shared ${GL_LIBRARY} ${PLATFORM_SPECIFIC_LIBRARIES} ) - INSTALL( TARGETS libglew_shared ARCHIVE DESTINATION lib ) - INSTALL( TARGETS libglew_shared RUNTIME DESTINATION bin ) + INSTALL( TARGETS libglew_shared ARCHIVE DESTINATION lib + RUNTIME DESTINATION bin) ENDIF ( ) IF ( glew-cmake_BUILD_MULTI_CONTEXT ) @@ -91,8 +91,8 @@ IF ( glew-cmake_BUILD_SHARED ) TARGET_COMPILE_DEFINITIONS( libglewmx_shared INTERFACE GLEW_MX) TARGET_INCLUDE_DIRECTORIES( libglewmx_shared PUBLIC ${INCLUDE_DIR} ) TARGET_LINK_LIBRARIES( libglewmx_shared ${GL_LIBRARY} ${PLATFORM_SPECIFIC_LIBRARIES} ) - INSTALL( TARGETS libglewmx_shared ARCHIVE DESTINATION lib ) - INSTALL( TARGETS libglewmx_shared RUNTIME DESTINATION bin ) + INSTALL( TARGETS libglewmx_shared ARCHIVE DESTINATION lib + RUNTIME DESTINATION bin ) ENDIF ( ) ENDIF ( )