OSDN Git Service

Runloop fixes
[skyscrapersim/skyscraper.git] / CMakeLists.txt
1 cmake_minimum_required(VERSION 2.8)
2  
3 project(Skyscraper)
4  
5 if (CMAKE_CXX_COMPILER_ID STREQUAL "GNU")
6   set (CMAKE_CXX_FLAGS "-fPIC -DBT_USE_DOUBLE_PRECISION ${CMAKE_CXX_FLAGS}")
7 endif ()
8
9 if(UNIX)
10         set(CMAKE_MODULE_PATH "${PROJECT_SOURCE_DIR}/tools/cmake;${CMAKE_MODULE_PATH}")
11         if(NOT APPLE)
12                 set(FRONTENDGLINC "-lGL")
13         endif()
14 endif(UNIX)
15  
16 if (CMAKE_BUILD_TYPE STREQUAL "")
17   # CMake defaults to leaving CMAKE_BUILD_TYPE empty. This screws up
18   # differentiation between debug and release builds.
19   set(CMAKE_BUILD_TYPE "RelWithDebInfo" CACHE STRING "Choose the type of build, options are: None (CMAKE_CXX_FLAGS or CMAKE_C_FLAGS used) Debug Release RelWithDebInfo MinSizeRel." FORCE)
20 endif ()
21  
22 find_package(OGRE REQUIRED)
23  
24 if(NOT OGRE_FOUND)
25   message(SEND_ERROR "Failed to find OGRE.")
26 endif()
27  
28 set (OGRE_LIBRARIES ${OGRE_LIBRARIES} ${OGRE_Overlay_LIBRARIES})
29
30 #find wxWidgets
31 find_package(wxWidgets COMPONENTS core base gl REQUIRED)
32
33 #find FMOD
34 find_package(FMOD REQUIRED)
35
36 #find GTK
37 if(NOT APPLE)
38 find_package(GTK2 COMPONENTS gtk REQUIRED)
39 endif ()
40
41 #find BULLET
42 find_package(Bullet REQUIRED)
43
44 #find Caelum
45 find_package(Caelum REQUIRED)
46
47 file(GLOB FRONTEND_FILES
48         src/frontend/*.cpp
49 )
50  
51 file(GLOB SBS_FILES
52         src/sbs/*.cpp
53 )
54  
55 file(GLOB SVNREV_FILES
56         svnrev/*.c
57 )
58
59 file(GLOB OGREBULLET_COLL_FILES
60         ogrebullet/Collisions/src/*.cpp
61         ogrebullet/Collisions/src/Debug/*.cpp
62         ogrebullet/Collisions/src/Shapes/*.cpp
63         ogrebullet/Collisions/src/Utils/*.cpp
64 )
65
66 file (GLOB OGREBULLET_DYN_FILES
67         ogrebullet/Dynamics/src/*.cpp
68         ogrebullet/Dynamics/src/Constraints/*.cpp
69         ogrebullet/Dynamics/src/Prefab/*.cpp
70 )
71
72 include_directories( ${OIS_INCLUDE_DIRS}
73         ${OGRE_INCLUDE_DIRS}
74         ${OGRE_Overlay_INCLUDE_DIRS}
75         ${FMOD_INCLUDE_DIR}
76         ${GTK2_INCLUDE_DIRS}
77         ${BULLET_INCLUDE_DIRS}
78         ${Caelum_INCLUDE_DIRS}
79         src/sbs
80         ogrebullet/Collisions/include
81         ogrebullet/Collisions/include/Debug
82         ogrebullet/Collisions/include/Shapes
83         ogrebullet/Collisions/include/Utils
84         ogrebullet/Dynamics/include
85         ogrebullet/Dynamics/include/Constraints
86         ogrebullet/Dynamics/include/Prefab
87 )
88  
89 include(${wxWidgets_USE_FILE})
90
91 #svnrev
92 add_executable(svnrev/svnrev ${SVNREV_FILES})
93 if(UNIX)
94         add_custom_target(MakeRev ALL ./svnrev.sh)
95         add_dependencies(MakeRev svnrev/svnrev)
96 endif()
97
98 #ogrebullet libraries
99 add_library(OgreBulletCol SHARED ${OGREBULLET_COLL_FILES})
100 add_library(OgreBulletDyn SHARED ${OGREBULLET_DYN_FILES})
101
102 #SBS library
103 add_library(SBS SHARED ${SBS_FILES})
104
105 #frontend executable
106 add_executable(skyscraper ${FRONTEND_FILES})
107  
108 target_link_libraries(OgreBulletCol ${OGRE_LIBRARIES} ${BULLET_LIBRARIES})
109 target_link_libraries(OgreBulletDyn OgreBulletCol ${OGRE_LIBRARIES} ${BULLET_LIBRARIES})
110
111 target_link_libraries(SBS OgreBulletCol OgreBulletDyn ${OGRE_LIBRARIES} ${OIS_LIBRARIES} ${FMOD_LIBRARY})
112
113 target_link_libraries(skyscraper SBS OgreBulletCol OgreBulletDyn ${OGRE_LIBRARIES} ${OIS_LIBRARIES} ${wxWidgets_LIBRARIES} ${FMOD_LIBRARY} ${GTK2_LIBRARIES} ${Caelum_LIBRARIES} ${FRONTENDGLINC})
114