-
Notifications
You must be signed in to change notification settings - Fork 7
/
Copy pathCMakeLists.txt
99 lines (73 loc) · 3.47 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
83
84
85
86
87
88
89
90
91
92
PROJECT(The-Dark-Crystal)
cmake_minimum_required(VERSION 2.8)
set(CMAKE_CONFIGURATION_TYPES "Debug;Release" CACHE STRING "" FORCE)
if(NOT CMAKE_BUILD_TYPE)
set(CMAKE_BUILD_TYPE Debug CACHE STRING "Choose the type of build (Debug or Release)" FORCE)
endif()
if(WIN32)
set(Boost_USE_STATIC_LIBS ON)
else()
set(Boost_USE_STATIC_LIBS OFF)
endif()
set(Boost_USE_MULTITHREADED ON)
set(Boost_USE_STATIC_RUNTIME OFF)
set(ENV{QTDIR} "${PROJECT_SOURCE_DIR}/libs/qt4")
file(WRITE "${PROJECT_SOURCE_DIR}/libs/qt4/bin/qt.conf" "[Paths]\nPrefix = ${PROJECT_SOURCE_DIR}/libs/qt4")
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${PROJECT_SOURCE_DIR}/bin)
file(GLOB_RECURSE DLLS_LIST ${PROJECT_SOURCE_DIR}/libs/*.dll)
file(GLOB_RECURSE LIBS_LIST ${PROJECT_SOURCE_DIR}/libs/*.lib)
MESSAGE(STATUS "RJ ${DLLS_LIST}")
file(COPY ${DLLS_LIST} DESTINATION "${PROJECT_SOURCE_DIR}/bin/Debug")
file(COPY ${DLLS_LIST} DESTINATION "${PROJECT_SOURCE_DIR}/bin/Release")
#dependencies' header
include_directories(${PROJECT_SOURCE_DIR}/libs/boost
${PROJECT_SOURCE_DIR}/libs/btogre/include
${PROJECT_SOURCE_DIR}/libs/bullet/src
${PROJECT_SOURCE_DIR}/libs/ogre/include/OGRE
${PROJECT_SOURCE_DIR}/libs/ogre/include/OIS
${PROJECT_SOURCE_DIR}/libs/ogre-procedural/library/include
${PROJECT_SOURCE_DIR}/libs/ogre-paged/include
${PROJECT_SOURCE_DIR}/libs/qt4/include
${PROJECT_SOURCE_DIR}/libs/sfml/include
${PROJECT_SOURCE_DIR}/libs/yaml-cpp/include
${PROJECT_SOURCE_DIR}/libs/mygui/MyGUIEngine/include
${PROJECT_SOURCE_DIR}/libs/mygui/Common
${PROJECT_SOURCE_DIR}/libs/mygui/Platforms/Ogre/OgrePlatform/include
${PROJECT_SOURCE_DIR}/libs/mygui/Platforms/DirectX/DirectXPlatform/include
${PROJECT_SOURCE_DIR}/libs/mygui/Platforms/OpenGL/OpenGLPlatform/include
${PROJECT_SOURCE_DIR}/src/thirdparty
${PROJECT_SOURCE_DIR}/libs/directshow/Include
)
include_directories(${PROJECT_SOURCE_DIR}/libs/ducttape/include)
include_directories(${PROJECT_SOURCE_DIR}/src/main)
include_directories(${PROJECT_SOURCE_DIR}/src/test)
# Qt4 stuff
set(QT_USE_QTSCRIPT TRUE)
set(QT_DONT_USE_QTGUI TRUE)
set(QT_USE_QTXML TRUE)
find_package(Qt4 REQUIRED)
include(${QT_USE_FILE})
MESSAGE(STATUS "QT_USE_FILE ${QT_USE_FILE}")
add_definitions(${QT_DEFINITONS})
if(MSVC) # Sort the odd stuff out
set(CMAKE_CXX_FLAGS "/DCOMPILER_MSVC /DOgreProcedural_STATIC /WX /MP /EHsc")
set(CMAKE_CXX_FLAGS_RELEASE "/O2 /DNDEBUG") # Odd duplicate symbols with /GL
set(CMAKE_CXX_FLAGS_DEBUG "/Zi")
else() # GCC/Mingw
set(CMAKE_CXX_FLAGS "-DCOMPILER_GCC -Wall -Wextra -Werror -Wno-unused-parameter -Wno-unused-but-set-parameter -pedantic -std=c++0x -fvisibility=hidden -fPIC")
set(CMAKE_CXX_FLAGS_RELEASE "-O2 -flto -DNDEBUG")
set(CMAKE_CXX_FLAGS_DEBUG "-g")
endif()
MESSAGE(STATUS "This is The-Dark-Crystal")
aux_source_directory(src/main main_CPP)
aux_source_directory(src/thirdparty thirdparty_CPP)
aux_source_directory(src/test test_CPP)
file(GLOB_RECURSE main_HPP src/main/*.hpp)
file(GLOB_RECURSE main_H src/main/*.h)
file(GLOB_RECURSE test_HPP src/test/*.hpp)
file(GLOB_RECURSE test_H src/test/*.h)
qt4_wrap_cpp(main_HEADERS_MOC ${main_HPP} ${main_H})
qt4_wrap_cpp(test_HEADERS_MOC ${test_HPP} ${test_H})
MESSAGE(STATUS "This is MOC${main_HEADERS_MOC}")
ADD_EXECUTABLE(The-Dark-Crystal ${main_CPP} ${main_HEADERS_MOC} ${thirdparty_CPP} ${test_CPP} ${test_HEADERS_MOC})
target_link_libraries(The-Dark-Crystal ${LIBS_LIST})