11macro (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+
213 # desktop platforms
314 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)
517
618 if (LINUX OR WINDOWS)
719 cocos_find_package(GLEW GLEW REQUIRED)
@@ -17,7 +29,6 @@ macro (BuildModules)
1729 find_package (Threads REQUIRED)
1830 set (THREADS_LIBRARIES ${CMAKE_THREAD_LIBS_INIT} )
1931
20- cocos_find_package(SQLite3 SQLITE3 REQUIRED)
2132 cocos_find_package(FMOD FMOD REQUIRED)
2233 cocos_find_package(Fontconfig FONTCONFIG REQUIRED)
2334 cocos_find_package(GTK3 GTK3 REQUIRED)
@@ -42,100 +53,150 @@ macro (BuildModules)
4253
4354 # Chipmunk
4455 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)
4860 endif (USE_CHIPMUNK)
4961
5062 # Box2d
5163 if (USE_BOX2D)
52- if (USE_PREBUILT_LIBS )
64+ if (USE_EXTERNAL_PREBUILT_LIBS )
5365 cocos_find_package(box2d Box2D REQUIRED)
54- endif (USE_PREBUILT_LIBS )
66+ endif (USE_EXTERNAL_PREBUILT_LIBS )
5567 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)
5674 endif (USE_BOX2D)
5775
5876 # Bullet
5977 if (USE_BULLET)
60- if (USE_PREBUILT_LIBS )
78+ if (USE_EXTERNAL_PREBUILT_LIBS )
6179 cocos_find_package(bullet BULLET REQUIRED)
6280 endif ()
81+ add_definitions (-DCC_ENABLE_BULLET_INTEGRATION=1)
82+ add_definitions (-DCC_USE_PHYSICS=1)
6383 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)
6487 endif (USE_BULLET)
6588
6689 # Recast (not prebuilded, exists as source)
6790 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)
7194 set (RECAST_LIBRARIES recast)
7295 else ()
7396 cocos_find_package(recast RECAST REQUIRED)
7497 set (RECAST_LIBRARIES recast)
7598 endif ()
7699 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)
77103 endif (USE_RECAST)
78104
79105 # 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)
83109 set (TinyXML2_LIBRARIES tinyxml2)
84110 else ()
85111 cocos_find_package(TinyXML2 TinyXML2 REQUIRED)
86112 endif ()
87113 message (STATUS "TinyXML2 include dirs: ${TinyXML2_INCLUDE_DIRS} " )
88114
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 ()
92134
93135 # minizip (we try to migrate to minizip from https://github.com/nmoinvaz/minizip)
94136 # only msys2 currently provides package for this variant, all other
95137 # dists have packages from zlib, thats very old for us.
96138 # moreover our embedded version modified to quick provide
97139 # 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 )
99141 #TODO: hack! should be in external/unzip/CMakeLists.txt
100142 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} )
103145 set (MINIZIP_LIBRARIES unzip ${ZLIB_LIBRARIES} )
104146 message (STATUS "MINIZIP include dirs: ${MINIZIP_INCLUDE_DIRS} " )
105147 else ()
106148 cocos_find_package(MINIZIP MINIZIP REQUIRED)
107149 # double check that we have needed functions
108150 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)
114152 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+
118178 cocos_find_package(WEBSOCKETS WEBSOCKETS REQUIRED)
119179 cocos_find_package(CURL CURL REQUIRED)
180+ if (NOT USE_EXTERNAL_PREBUILT_LIBS)
181+ cocos_find_package(OpenSSL OPENSSL REQUIRED)
182+ endif ()
120183
121184 # 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)
125188 message (STATUS "Flatbuffers include dirs: ${FLATBUFFERS_INCLUDE_DIRS} " )
126189 else ()
127190 cocos_find_package(flatbuffers flatbuffers REQUIRED)
128191 endif ()
129192
130193 # 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)
134197 set (XXHASH_LIBRARIES xxhash)
135198 else ()
136199 cocos_find_package(xxhash xxhash REQUIRED)
137200 endif ()
138201
139- # libcocos2d.a
140- add_subdirectory (${CMAKE_CURRENT_SOURCE_DIR} /cocos)
141202endmacro (BuildModules)
0 commit comments