1
1
macro (BuildModules )
2
+
3
+ # header files third libiary needed, such as tinyxml2.h
4
+ include_directories (
5
+ ${COCOS2DX_ROOT_PATH}
6
+ ${COCOS2DX_ROOT_PATH} /cocos
7
+ ${COCOS2DX_ROOT_PATH} /deprecated
8
+ ${COCOS2DX_ROOT_PATH} /cocos/platform
9
+ ${COCOS2DX_ROOT_PATH} /extensions
10
+ ${COCOS2DX_ROOT_PATH} /external
11
+ )
12
+
2
13
# desktop platforms
3
14
if (LINUX OR MACOSX OR WINDOWS )
4
- cocos_find_package (OpenGL OPENGL REQUIRED )
15
+ cocos_find_package (OpenGL OPENGL REQUIRED )
16
+ cocos_find_package (SQLite3 SQLITE3 REQUIRED )
5
17
6
18
if (LINUX OR WINDOWS )
7
19
cocos_find_package (GLEW GLEW REQUIRED )
@@ -17,7 +29,6 @@ macro (BuildModules)
17
29
find_package (Threads REQUIRED )
18
30
set (THREADS_LIBRARIES ${CMAKE_THREAD_LIBS_INIT} )
19
31
20
- cocos_find_package (SQLite3 SQLITE3 REQUIRED )
21
32
cocos_find_package (FMOD FMOD REQUIRED )
22
33
cocos_find_package (Fontconfig FONTCONFIG REQUIRED )
23
34
cocos_find_package (GTK3 GTK3 REQUIRED )
@@ -42,100 +53,150 @@ macro (BuildModules)
42
53
43
54
# Chipmunk
44
55
if (USE_CHIPMUNK )
45
- if (USE_PREBUILT_LIBS )
46
- cocos_find_package (Chipmunk CHIPMUNK REQUIRED )
47
- endif ()
56
+ cocos_find_package (Chipmunk CHIPMUNK REQUIRED )
57
+ add_definitions (-DCC_ENABLE_CHIPMUNK_INTEGRATION=1 )
58
+ else (USE_CHIPMUNK )
59
+ add_definitions (-DCC_USE_PHYSICS=0 )
48
60
endif (USE_CHIPMUNK )
49
61
50
62
# Box2d
51
63
if (USE_BOX2D )
52
- if (USE_PREBUILT_LIBS )
64
+ if (USE_EXTERNAL_PREBUILT_LIBS )
53
65
cocos_find_package (box2d Box2D REQUIRED )
54
- endif (USE_PREBUILT_LIBS )
66
+ endif (USE_EXTERNAL_PREBUILT_LIBS )
55
67
message (STATUS "Box2D include dirs: ${Box2D_INCLUDE_DIRS} " )
68
+ add_definitions (-DCC_ENABLE_BOX2D_INTEGRATION=1 )
69
+ elseif (BUILD_BOX2D )
70
+ add_subdirectory (${COCOS2DX_ROOT_PATH} /external/Box2D ${ENGINE_BINARY_PATH} /external/Box2D )
71
+ add_definitions (-DCC_ENABLE_BOX2D_INTEGRATION=1 )
72
+ else ()
73
+ add_definitions (-DCC_ENABLE_BOX2D_INTEGRATION=0 )
56
74
endif (USE_BOX2D )
57
75
58
76
# Bullet
59
77
if (USE_BULLET )
60
- if (USE_PREBUILT_LIBS )
78
+ if (USE_EXTERNAL_PREBUILT_LIBS )
61
79
cocos_find_package (bullet BULLET REQUIRED )
62
80
endif ()
81
+ add_definitions (-DCC_ENABLE_BULLET_INTEGRATION=1 )
82
+ add_definitions (-DCC_USE_PHYSICS=1 )
63
83
message (STATUS "Bullet include dirs: ${BULLET_INCLUDE_DIRS} " )
84
+ else (USE_BULLET )
85
+ add_definitions (-DCC_ENABLE_BULLET_INTEGRATION=0 )
86
+ add_definitions (-DCC_USE_3D_PHYSICS=0 )
64
87
endif (USE_BULLET )
65
88
66
89
# Recast (not prebuilded, exists as source)
67
90
if (USE_RECAST )
68
- if (USE_PREBUILT_LIBS OR USE_SOURCES_EXTERNAL )
69
- add_subdirectory (${CMAKE_CURRENT_SOURCE_DIR } /external/recast )
70
- set (RECAST_INCLUDE_DIRS ${CMAKE_CURRENT_SOURCE_DIR } /external/recast )
91
+ if (USE_EXTERNAL_PREBUILT_LIBS OR USE_SOURCES_EXTERNAL )
92
+ add_subdirectory (${COCOS2DX_ROOT_PATH} /external/recast ${ENGINE_BINARY_PATH }/external/recast )
93
+ set (RECAST_INCLUDE_DIRS ${COCOS2DX_ROOT_PATH } /external/recast )
71
94
set (RECAST_LIBRARIES recast )
72
95
else ()
73
96
cocos_find_package (recast RECAST REQUIRED )
74
97
set (RECAST_LIBRARIES recast )
75
98
endif ()
76
99
message (STATUS "Recast include dirs: ${RECAST_INCLUDE_DIRS} " )
100
+ add_definitions (-DCC_USE_NAVMESH=1 )
101
+ else (USE_RECAST )
102
+ add_definitions (-DCC_USE_NAVMESH=0 )
77
103
endif (USE_RECAST )
78
104
79
105
# Tinyxml2 (not prebuilded, exists as source)
80
- if (USE_PREBUILT_LIBS OR USE_SOURCES_EXTERNAL )
81
- add_subdirectory (${CMAKE_CURRENT_SOURCE_DIR } /external/tinyxml2 )
82
- set (TinyXML2_INCLUDE_DIRS ${CMAKE_CURRENT_SOURCE_DIR } /external/tinyxml2 )
106
+ if (USE_EXTERNAL_PREBUILT_LIBS OR USE_SOURCES_EXTERNAL )
107
+ add_subdirectory (${COCOS2DX_ROOT_PATH} /external/tinyxml2 ${ENGINE_BINARY_PATH }/external/tinyxml2 )
108
+ set (TinyXML2_INCLUDE_DIRS ${COCOS2DX_ROOT_PATH } /external/tinyxml2 )
83
109
set (TinyXML2_LIBRARIES tinyxml2 )
84
110
else ()
85
111
cocos_find_package (TinyXML2 TinyXML2 REQUIRED )
86
112
endif ()
87
113
message (STATUS "TinyXML2 include dirs: ${TinyXML2_INCLUDE_DIRS} " )
88
114
89
- # libjpeg
90
- cocos_find_package (JPEG JPEG REQUIRED )
91
- cocos_find_package (ZLIB ZLIB REQUIRED )
115
+ # need review
116
+ if (NOT IOS )
117
+ cocos_find_package (ZLIB ZLIB REQUIRED )
118
+ endif ()
119
+ if (IOS )
120
+ cocos_find_package (SQLite3 SQLITE3 REQUIRED )
121
+ endif (IOS )
122
+
123
+ if (ANDROID )
124
+ add_subdirectory (${COCOS2DX_ROOT_PATH} /external/android-specific/pvmp3dec ${ENGINE_BINARY_PATH} /external/android-specific/pvmp3dec )
125
+ set (PVMP3DEC_INCLUDE_DIRS ${COCOS2DX_ROOT_PATH} /external/android-specific/pvmp3dec/include ${COCOS2DX_ROOT_PATH} /external/android-specific/pvmp3dec/src )
126
+ set (PVMP3DEC_LIBRARIES pvmp3dec )
127
+ message (STATUS "pvmp3dec include dirs: ${PVMP3DEC_INCLUDE_DIRS} " )
128
+
129
+ add_subdirectory (${COCOS2DX_ROOT_PATH} /external/android-specific/tremolo ${ENGINE_BINARY_PATH} /external/android-specific/tremolo )
130
+ set (TREMOLO_INCLUDE_DIRS ${COCOS2DX_ROOT_PATH} /external/android-specific/tremolo )
131
+ set (TREMOLO_LIBRARIES tremolo )
132
+ message (STATUS "Tremolo include dirs: ${TREMOLO_INCLUDE_DIRS} " )
133
+ endif ()
92
134
93
135
# minizip (we try to migrate to minizip from https://github.com/nmoinvaz/minizip)
94
136
# only msys2 currently provides package for this variant, all other
95
137
# dists have packages from zlib, thats very old for us.
96
138
# moreover our embedded version modified to quick provide
97
139
# functionality needed by cocos.
98
- if (USE_PREBUILT_LIBS OR NOT MINGW )
140
+ if (USE_EXTERNAL_PREBUILT_LIBS OR NOT MINGW OR USE_SOURCES_EXTERNAL )
99
141
#TODO: hack! should be in external/unzip/CMakeLists.txt
100
142
include_directories (${ZLIB_INCLUDE_DIRS} )
101
- add_subdirectory (${CMAKE_CURRENT_SOURCE_DIR } /external/unzip )
102
- set (MINIZIP_INCLUDE_DIRS ${CMAKE_CURRENT_SOURCE_DIR } /external/unzip ${ZLIB_INCLUDE_DIRS} )
143
+ add_subdirectory (${COCOS2DX_ROOT_PATH} /external/unzip ${ENGINE_BINARY_PATH }/external/unzip )
144
+ set (MINIZIP_INCLUDE_DIRS ${COCOS2DX_ROOT_PATH } /external/unzip ${ZLIB_INCLUDE_DIRS} )
103
145
set (MINIZIP_LIBRARIES unzip ${ZLIB_LIBRARIES} )
104
146
message (STATUS "MINIZIP include dirs: ${MINIZIP_INCLUDE_DIRS} " )
105
147
else ()
106
148
cocos_find_package (MINIZIP MINIZIP REQUIRED )
107
149
# double check that we have needed functions
108
150
include (CheckLibraryExists )
109
- check_library_exists (${MINIZIP_LIBRARIES} "unzGoToFirstFile2" "" MINIZIP_HAS_GOTOFIRSTFILE2 )
110
- if (NOT MINIZIP_HAS_GOTOFIRSTFILE2 )
111
- message (FATAL_ERROR "Minizip library on you system very old. Please use recent version from https://github.com/nmoinvaz/minizip or enable USE_PREBUILT_LIBS" )
112
- return ()
113
- endif ()
151
+ add_definitions (-DMINIZIP_FROM_SYSTEM )
114
152
endif ()
115
-
116
- cocos_find_package (PNG PNG REQUIRED )
117
- cocos_find_package (TIFF TIFF REQUIRED )
153
+
154
+ # Jpeg
155
+ if (USE_JPEG )
156
+ cocos_find_package (JPEG JPEG REQUIRED )
157
+ add_definitions (-DCC_USE_JPEG=1 )
158
+ else (USE_JPEG )
159
+ add_definitions (-DCC_USE_JPEG=0 )
160
+ endif (USE_JPEG )
161
+
162
+ # Tiff
163
+ if (USE_TIFF )
164
+ cocos_find_package (TIFF TIFF REQUIRED )
165
+ add_definitions (-DCC_USE_TIFF=1 )
166
+ else (USE_TIFF )
167
+ add_definitions (-DCC_USE_TIFF=0 )
168
+ endif (USE_TIFF )
169
+
170
+ # Png
171
+ if (USE_PNG )
172
+ cocos_find_package (PNG PNG REQUIRED )
173
+ add_definitions (-DCC_USE_PNG=1 )
174
+ else (USE_PNG )
175
+ add_definitions (-DCC_USE_PNG=0 )
176
+ endif (USE_PNG )
177
+
118
178
cocos_find_package (WEBSOCKETS WEBSOCKETS REQUIRED )
119
179
cocos_find_package (CURL CURL REQUIRED )
180
+ if (NOT USE_EXTERNAL_PREBUILT_LIBS )
181
+ cocos_find_package (OpenSSL OPENSSL REQUIRED )
182
+ endif ()
120
183
121
184
# flatbuffers
122
- if (USE_PREBUILT_LIBS OR USE_SOURCES_EXTERNAL )
123
- add_subdirectory (${CMAKE_CURRENT_SOURCE_DIR } /external/flatbuffers )
124
- set (FLATBUFFERS_INCLUDE_DIRS ${CMAKE_CURRENT_SOURCE_DIR } /external )
185
+ if (USE_EXTERNAL_PREBUILT_LIBS OR USE_SOURCES_EXTERNAL )
186
+ add_subdirectory (${COCOS2DX_ROOT_PATH} /external/flatbuffers ${ENGINE_BINARY_PATH }/external/flatbuffers )
187
+ set (FLATBUFFERS_INCLUDE_DIRS ${COCOS2DX_ROOT_PATH } /external )
125
188
message (STATUS "Flatbuffers include dirs: ${FLATBUFFERS_INCLUDE_DIRS} " )
126
189
else ()
127
190
cocos_find_package (flatbuffers flatbuffers REQUIRED )
128
191
endif ()
129
192
130
193
# xxhash
131
- if (USE_PREBUILT_LIBS OR USE_SOURCES_EXTERNAL )
132
- add_subdirectory (${CMAKE_CURRENT_SOURCE_DIR } /external/xxhash )
133
- set (XXHASH_INCLUDE_DIRS ${CMAKE_CURRENT_SOURCE_DIR } /external/xxhash )
194
+ if (USE_EXTERNAL_PREBUILT_LIBS OR USE_SOURCES_EXTERNAL )
195
+ add_subdirectory (${COCOS2DX_ROOT_PATH} /external/xxhash ${ENGINE_BINARY_PATH }/external/xxhash )
196
+ set (XXHASH_INCLUDE_DIRS ${COCOS2DX_ROOT_PATH } /external/xxhash )
134
197
set (XXHASH_LIBRARIES xxhash )
135
198
else ()
136
199
cocos_find_package (xxhash xxhash REQUIRED )
137
200
endif ()
138
201
139
- # libcocos2d.a
140
- add_subdirectory (${CMAKE_CURRENT_SOURCE_DIR} /cocos )
141
202
endmacro (BuildModules )
0 commit comments