aboutsummaryrefslogtreecommitdiff
path: root/src/CMakeLists.txt
diff options
context:
space:
mode:
authorWolfgang Draxinger <Wolfgang.Draxinger@physik.uni-muenchen.de>2015-04-17 22:08:23 +0200
committerWolfgang Draxinger <Wolfgang.Draxinger@physik.uni-muenchen.de>2015-04-17 22:08:23 +0200
commitc3657a01ec8ce2c159978d1ee4d36b5456413ca1 (patch)
tree693deb440fe1f2ef028598ee428f07343b0bad13 /src/CMakeLists.txt
parentb227e5e43414a59014c4882a2ead764ff3abd736 (diff)
downloadwglarb-c3657a01ec8ce2c159978d1ee4d36b5456413ca1.tar.gz
wglarb-c3657a01ec8ce2c159978d1ee4d36b5456413ca1.tar.bz2
changed build system from plain Makefile to CMake
Diffstat (limited to 'src/CMakeLists.txt')
-rw-r--r--src/CMakeLists.txt43
1 files changed, 43 insertions, 0 deletions
diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
new file mode 100644
index 0000000..c6abaf4
--- /dev/null
+++ b/src/CMakeLists.txt
@@ -0,0 +1,43 @@
+cmake_minimum_required(VERSION 2.8)
+project(libwglarb)
+
+include(GenerateExportHeader)
+
+# GCC intrinsics support and C++ standard library should be linked statically
+# so that no external dependencies are created.
+if(NOT MSVC) # TODO: this should test for GCC and not "not MSVC" compiler
+ set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -static-libgcc -std=c99")
+ set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -static-libgcc -static-libstdc++")
+ set(CMAKE_SHARED_LIBRARY_LINK_C_FLAGS "${CMAKE_SHARED_LIBRARY_LINK_C_FLAGS} -static-libgcc -s")
+ set(CMAKE_SHARED_LIBRARY_LINK_CXX_FLAGS "${CMAKE_SHARED_LIBRARY_LINK_CXX_FLAGS} -static-libgcc -static-libstdc++ -s")
+ set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} -static-libgcc -static-libstdc++ -s ")
+ set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} -Wl,--output-def,wglarb${DLL_OUTPUT_SUFFIX}.def,--out-implib,wglarb.dll.a")
+endif()
+
+set(OPENGL_API_LIBRARY opengl32)
+
+set(LIBWGLARB_INCLUDE_SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR} CACHE STRING "wglarb source directory" FORCE)
+
+include_directories(
+ ${CMAKE_CURRENT_BINARY_DIR} )
+set(LIBWGLARB_SRC_FILES
+ wglarb.c )
+
+add_library(wglarb_static STATIC
+ ${LIBWGLARB_SRC_FILES} )
+
+add_library(wglarb_shared SHARED
+ ${LIBWGLARB_SRC_FILES} )
+
+target_link_libraries(
+ wglarb_shared
+ ${OPENGL_API_LIBRARY} )
+
+set_target_properties(wglarb_shared PROPERTIES DEFINE_SYMBOL "wglarb_EXPORTS")
+set_target_properties(wglarb_shared PROPERTIES DEFINE_SYMBOL "wglarb_EXPORTS")
+
+set_target_properties(wglarb_shared PROPERTIES OUTPUT_NAME "wglarb")
+set_target_properties(wglarb_static PROPERTIES OUTPUT_NAME "wglarb")
+
+set_target_properties(wglarb_shared PROPERTIES PREFIX "${DLL_OUTPUT_PREFIX}")
+set_target_properties(wglarb_shared PROPERTIES SUFFIX "${DLL_OUTPUT_SUFFIX}.dll")