-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathCMakeLists.txt
71 lines (52 loc) · 1.45 KB
/
CMakeLists.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
cmake_minimum_required(VERSION 2.8)
project(galaxy)
if(NOT ${CMAKE_VERSION} VERSION_LESS "3.0.1")
cmake_policy(SET CMP0042 OLD)
endif()
set(CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR}/cmake")
include(AddCxxFlag)
set(GALAXY_SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR})
set(GALAXY_BUILD_DIR ${CMAKE_CURRENT_BINARY_DIR})
set(GLXW_LIBRARY "")
if(UNIX AND NOT APPLE)
add_subdirectory(ext/glxw)
set(GLXW_LIBRARY "glxw")
endif()
# Compiler Flags:
add_cxxflag("-std=c++11")
add_cxxflag("-fno-rtti")
# Warnings
add_cxxflag("-Wall")
add_cxxflag("-Wextra")
add_cxxflag("-Wuninitialized")
add_cxxflag("-Wold-style-cast")
add_cxxflag("-Woverloaded-virtual")
add_cxxflag("-Wpointer-arith")
add_cxxflag("-Wcast-qual")
add_cxxflag("-Woverflow")
add_cxxflag("-Wmissing-declarations")
add_cxxflag("-Wredundant-decls")
add_cxxflag("-Werror")
add_cxxflag("-Wno-missing-declarations")
add_cxxflag("-Wno-missing-field-initializers")
if("${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang")
add_cxxflag("-stdlib=libc++")
add_cxxflag("-Wno-#pragma-messages")
endif()
include_directories(
${CMAKE_CURRENT_SOURCE_DIR}/src
${CMAKE_CURRENT_SOURCE_DIR}/include
${CMAKE_CURRENT_BINARY_DIR}/ext/glxw/include
)
set(GALAXY_SOURCES
src/gxy/game.cpp
src/gxy/test/functioncallmap.cpp
)
add_library(${PROJECT_NAME} SHARED ${GALAXY_SOURCES})
target_link_libraries(${PROJECT_NAME}
${GLXW_LIBRARY}
)
# Tests
add_subdirectory(ext/gmock)
add_subdirectory(test)
add_dependencies(unit gmock gmock_main)