From 19bd2de9e3765b4cbcb01eb01d1f07ef0ac282f5 Mon Sep 17 00:00:00 2001 From: Gyusun Yeom Date: Wed, 7 Oct 2015 14:21:05 +0900 Subject: [PATCH] Add sigle-context/multi-context version build option --- CMakeLists.txt | 58 ++++++++++++++++++++++++++++++++++++++------------ 1 file changed, 44 insertions(+), 14 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 816a390..a8ecc90 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -11,6 +11,8 @@ SET( CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin ) OPTION( glew-cmake_BUILD_SHARED "Build the shared glew library" ON) OPTION( glew-cmake_BUILD_STATIC "Build the static glew library" ON) +OPTION( glew-cmake_BUILD_SINGLE_CONTEXT "Build the single context glew library" ON ) +OPTION( glew-cmake_BUILD_MULTI_CONTEXT "Build the multi context glew library" ON ) INCLUDE_DIRECTORIES( ${INCLUDE_DIR} ) @@ -40,26 +42,54 @@ ELSE( ) ENDIF( ) IF ( glew-cmake_BUILD_STATIC ) - ADD_LIBRARY( libglew_static STATIC ${LIBGLEW_SRCS} ) + IF ( glew-cmake_BUILD_SINGLE_CONTEXT ) + ADD_LIBRARY( libglew_static STATIC ${LIBGLEW_SRCS} ) - SET_PROPERTY( TARGET libglew_static PROPERTY ARCHIVE_OUTPUT_NAME "glew" ) - SET_PROPERTY( TARGET libglew_static PROPERTY DEBUG_POSTFIX d ) - INSTALL( TARGETS libglew_static DESTINATION lib ) - TARGET_LINK_LIBRARIES( libglew_static ${GL_LIBRARY} ${PLATFORM_SPECIFIC_LIBRARIES} ) + SET_TARGET_PROPERTIES( libglew_static PROPERTIES + ARCHIVE_OUTPUT_NAME "glew" + DEBUG_POSTFIX d ) + INSTALL( TARGETS libglew_static DESTINATION lib ) + TARGET_LINK_LIBRARIES( libglew_static ${GL_LIBRARY} ${PLATFORM_SPECIFIC_LIBRARIES} ) + ENDIF ( ) + + IF ( glew-cmake_BUILD_MULTI_CONTEXT ) + ADD_LIBRARY( libglewmx_static STATIC ${LIBGLEW_SRCS} ) + + SET_TARGET_PROPERTIES( libglewmx_static PROPERTIES + ARCHIVE_OUTPUT_NAME "glewmx" + DEBUG_POSTFIX d ) + INSTALL( TARGETS libglewmx_static DESTINATION lib ) + TARGET_COMPILE_DEFINITIONS( libglewmx_static INTERFACE GLEW_MX) + TARGET_LINK_LIBRARIES( libglewmx_static ${GL_LIBRARY} ${PLATFORM_SPECIFIC_LIBRARIES} ) + ENDIF ( ) ENDIF ( ) IF ( glew-cmake_BUILD_SHARED ) - ADD_LIBRARY( libglew_shared SHARED ${LIBGLEW_SRCS} ) + IF ( glew-cmake_BUILD_SINGLE_CONTEXT ) + ADD_LIBRARY( libglew_shared SHARED ${LIBGLEW_SRCS} ) - IF( WIN32 ) - SET_PROPERTY( TARGET libglew_shared PROPERTY RUNTIME_OUTPUT_NAME "glew" ) - ELSE( ) - SET_PROPERTY( TARGET libglew_shared PROPERTY LIBRARY_OUTPUT_NAME "glew" ) - ENDIF( ) - SET_PROPERTY( TARGET libglew_shared PROPERTY DEBUG_POSTFIX d ) + SET_TARGET_PROPERTIES( libglew_shared PROPERTIES + RUNTIME_OUTPUT_NAME "glew" + LIBRARY_OUTPUT_NAME "glew" + DEBUG_POSTFIX d ) - TARGET_LINK_LIBRARIES( libglew_shared ${GL_LIBRARY} ${PLATFORM_SPECIFIC_LIBRARIES} ) - INSTALL( TARGETS libglew_shared DESTINATION lib ) + TARGET_LINK_LIBRARIES( libglew_shared ${GL_LIBRARY} ${PLATFORM_SPECIFIC_LIBRARIES} ) + INSTALL( TARGETS libglew_shared DESTINATION lib ) + ENDIF ( ) + + IF ( glew-cmake_BUILD_MULTI_CONTEXT ) + ADD_LIBRARY( libglewmx_shared SHARED ${LIBGLEW_SRCS} ) + + SET_TARGET_PROPERTIES( libglewmx_shared PROPERTIES + RUNTIME_OUTPUT_NAME "glewmx" + LIBRARY_OUTPUT_NAME "glewmx" + DEBUG_POSTFIX d ) + + TARGET_LINK_LIBRARIES( libglewmx_shared ${GL_LIBRARY} ${PLATFORM_SPECIFIC_LIBRARIES} ) + INSTALL( TARGETS libglewmx_shared DESTINATION lib ) + + TARGET_COMPILE_DEFINITIONS( libglewmx_shared INTERFACE GLEW_MX) + ENDIF ( ) ENDIF ( ) FILE( GLOB PUBLIC_HEADERS "include/GL/*.h" )