glew-cmake/CMakeLists.txt
omniavinco ab43be0f06 Tidy CMakeLists.txt
merge duplicated condition check
2014-08-29 22:52:36 +09:00

89 lines
2.8 KiB
CMake

CMAKE_MINIMUM_REQUIRED( VERSION 2.6 )
PROJECT( "glew" )
SET( SRC_DIR ${CMAKE_CURRENT_SOURCE_DIR}/src )
SET( INCLUDE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/include )
SET( RC_DIR ${CMAKE_CURRENT_SOURCE_DIR}/build )
SET( CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/lib )
SET( CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/lib )
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)
INCLUDE_DIRECTORIES( ${INCLUDE_DIR} )
SET( LIBGLEW_SRCS ${SRC_DIR}/glew.c )
IF( WIN32 )
ADD_DEFINITIONS( -DWIN32_MEAN_AND_LEAN -DVC_EXTRALEAN -DGLEW_BUILD -D_CRT_SECURE_NO_WARNINGS )
ENDIF( )
IF( MSVC )
LIST( APPEND LIBGLEW_SRCS ${RC_DIR}/glew.rc )
ENDIF( )
IF( NOT USE_GLU )
ADD_DEFINITIONS( -DGLEW_NO_GLU )
ENDIF( )
IF( WIN32 )
SET( GL_LIBRARY opengl32 )
ELSEIF( APPLE )
FIND_LIBRARY( GL_LIBRARY OpenGL )
FIND_LIBRARY( AGL_LIBRARY AGL )
SET( PLATFORM_SPECIFIC_LIBRARIES ${AGL_LIBRARY} )
ELSE( )
SET( GL_LIBRARY GL )
SET( PLATFORM_SPECIFIC_LIBRARIES X11 dl Xext )
ENDIF( )
IF ( glew-cmake_BUILD_STATIC )
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} )
ENDIF ( )
IF ( glew-cmake_BUILD_SHARED )
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 )
TARGET_LINK_LIBRARIES( libglew_shared ${GL_LIBRARY} ${PLATFORM_SPECIFIC_LIBRARIES} )
INSTALL( TARGETS libglew_shared DESTINATION lib )
ENDIF ( )
FILE( GLOB PUBLIC_HEADERS "include/GL/*.h" )
INSTALL( FILES ${PUBLIC_HEADERS} DESTINATION include/GL/ )
IF( ${CMAKE_CURRENT_SOURCE_DIR} STREQUAL ${CMAKE_SOURCE_DIR} AND NOT ONLY_LIBS )
SET( GLEWINFO_SRCS ${SRC_DIR}/glewinfo.c )
SET( VISUALINFO_SRCS ${SRC_DIR}/visualinfo.c )
IF( MSVS )
LIST( APPEND GLEWINFO_SRCS ${RC_DIR}/glewinfo.rc )
LIST( APPEND VISUALINFO_SRCS ${RC_DIR}/visualinfo.rc )
ENDIF( )
ADD_EXECUTABLE( glewinfo ${GLEWINFO_SRCS} )
ADD_EXECUTABLE( visualinfo ${VISUALINFO_SRCS} )
IF ( glew-cmake_BUILD_STATIC )
TARGET_LINK_LIBRARIES( glewinfo libglew_static )
TARGET_LINK_LIBRARIES( visualinfo libglew_static )
ELSE ( )
TARGET_LINK_LIBRARIES( glewinfo libglew_shared )
TARGET_LINK_LIBRARIES( visualinfo libglew_shared )
ENDIF ( )
INSTALL( TARGETS glewinfo visualinfo DESTINATION bin )
ENDIF( )