-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathCMakeLists.txt
82 lines (60 loc) · 3.27 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
72
73
74
75
76
77
78
79
80
81
82
cmake_minimum_required(VERSION 2.8 FATAL_ERROR)
set(CMAKE_LEGACY_CYGWIN32 0)
project(APG)
set(VERSION_MAJOR 0)
set(VERSION_MINOR 2)
set(VERSION_PATCH 0)
set(VERSION "${VERSION_MAJOR}.${VERSION_MINOR}.${VERSION_PATCH}")
message("Conifguring APG version ${VERSION}.")
set(CMAKE_MODULE_PATH ${PROJECT_SOURCE_DIR}/cmake)
find_package(SDL2 REQUIRED)
find_package(SDL2_image REQUIRED)
find_package(SDL2_mixer REQUIRED)
find_package(OpenGL REQUIRED)
find_package(GLEW REQUIRED)
find_package(TmxParser REQUIRED)
file(GLOB_RECURSE APG_SOURCES ${PROJECT_SOURCE_DIR}/src/*.cpp)
file(GLOB_RECURSE APG_HEADERS ${PROJECT_SOURCE_DIR}/include/*.hpp)
file(GLOB_RECURSE APG_TEST_ASSETS ${PROJECT_SOURCE_DIR}/assets/*)
set(CMAKE_CXX_COMPILER_ARG1 "-std=c++1y")
set(CMAKE_CXX_FLAGS_BASE "-Wall -Wextra -Wno-unused-parameter -fPIC")
set(APG_DEBUG_FLAGS "-g3 -O0")
set(APG_RELEASE_FLAGS "-g0 -O3")
include_directories("include" ${SDL2_INCLUDE_DIR} ${SDL2_IMAGE_INCLUDE_DIR} ${SDL2_MIXER_INCLUDE_DIR} ${OPENGL_INCLUDE_DIR} ${GLEW_INCLUDE_DIRS} ${TMXPARSER_INCLUDE_DIR})
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS_BASE} ${APG_DEBUG_FLAGS}")
add_library(APG-d ${APG_SOURCES})
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS_BASE} ${APG_RELEASE_FLAGS}")
add_library(APG ${APG_SOURCES})
if ( NOT EXISTS ${PROJECT_SOURCE_DIR}/assets/test_music.ogg )
if ( NOT EXCLUDE_AUDIO_TEST )
message("You haven't added a \"test_music.ogg\" file to the assets folder. Without this, the audio test will fail to run; don't forget to add it!")
endif ( NOT EXCLUDE_AUDIO_TEST )
endif ( NOT EXISTS ${PROJECT_SOURCE_DIR}/assets/test_music.ogg )
if ( (NOT EXCLUDE_SDL_TEST) OR (NOT EXCLUDE_GL_TEST) OR (NOT EXCLUDE_AUDIO_TEST) )
file(MAKE_DIRECTORY assets)
file(COPY ${APG_TEST_ASSETS} DESTINATION assets)
endif ( (NOT EXCLUDE_SDL_TEST) OR (NOT EXCLUDE_GL_TEST) OR (NOT EXCLUDE_AUDIO_TEST) )
if ( NOT EXCLUDE_SDL_TEST)
set (SDLRENDERTEST_FLAGS "")
set (SDLRENDERTEST_SOURCES test/APGSDLRenderTest.cpp)
set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS_BASE} ${APG_DEBUG_FLAGS} ${SDLRENDERTEST_FLAGS}")
add_executable(SDLRenderTest ${SDLRENDERTEST_SOURCES})
target_link_libraries(SDLRenderTest APG-d ${SDL2_LIBRARY} ${SDL2_IMAGE_LIBRARY} ${SDL2_MIXER_LIBRARY} ${OPENGL_LIBRARIES} ${GLEW_LIBRARIES} ${TMXPARSER_LIBRARY})
endif ( NOT EXCLUDE_SDL_TEST )
if ( NOT EXCLUDE_GL_TEST )
set (GLRENDERTEST_FLAGS "")
set (GLRENDERTEST_SOURCES test/APGGLRenderTest.cpp)
set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS_BASE} ${APG_DEBUG_FLAGS} ${GLRENDERTEST_FLAGS}")
add_executable(GLRenderTest ${GLRENDERTEST_SOURCES})
target_link_libraries(GLRenderTest APG-d ${SDL2_LIBRARY} ${SDL2_IMAGE_LIBRARY} ${SDL2_MIXER_LIBRARY} ${OPENGL_LIBRARIES} ${GLEW_LIBRARIES} ${TMXPARSER_LIBRARY})
endif ( NOT EXCLUDE_GL_TEST )
if ( NOT EXCLUDE_AUDIO_TEST )
set (AUDIOTEST_FLAGS "")
set (AUDIOTEST_SOURCES test/APGAudioTest.cpp)
set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS_BASE} ${APG_DEBUG_FLAGS} ${AUDIOTEST_FLAGS}")
add_executable(AudioTest ${AUDIOTEST_SOURCES})
target_link_libraries(AudioTest APG-d ${SDL2_LIBRARY} ${SDL2_IMAGE_LIBRARY} ${SDL2_MIXER_LIBRARY} ${OPENGL_LIBRARIES} ${GLEW_LIBRARIES} ${TMXPARSER_LIBRARY})
endif ( NOT EXCLUDE_AUDIO_TEST )
install (TARGETS APG-d DESTINATION lib)
install (TARGETS APG DESTINATION lib)
install (FILES ${APG_HEADERS} DESTINATION include/APG)