|
58 | 58 | endif()
|
59 | 59 | endif()
|
60 | 60 |
|
| 61 | + # check and print compiler infos |
61 | 62 | if("${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang")
|
62 | 63 | set(COMPILER_STRING ${CMAKE_CXX_COMPILER_ID})
|
63 | 64 | set(CLANG TRUE)
|
|
74 | 75 | else()
|
75 | 76 | set(COMPILER_STRING "${CMAKE_CXX_COMPILER_ID}")
|
76 | 77 | endif()
|
77 |
| - |
78 | 78 | if(CMAKE_CROSSCOMPILING)
|
79 | 79 | set(BUILDING_STRING "It appears you are cross compiling for ${SYSTEM_STRING} with ${COMPILER_STRING}")
|
80 | 80 | else()
|
81 | 81 | set(BUILDING_STRING "It appears you are building natively for ${SYSTEM_STRING} with ${COMPILER_STRING}")
|
82 | 82 | endif()
|
83 |
| - |
84 | 83 | message(STATUS ${BUILDING_STRING})
|
85 | 84 |
|
86 |
| - set(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -DCOCOS2D_DEBUG=1") |
87 |
| - set(CMAKE_CXX_FLAGS_DEBUG ${CMAKE_C_FLAGS_DEBUG}) |
88 |
| - |
89 |
| - # Compiler options |
| 85 | + # Set compiler options |
90 | 86 | if(MSVC)
|
91 |
| - |
92 |
| - set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS} /MDd") |
93 |
| - set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS} /MD") |
| 87 | + set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} /MDd") |
| 88 | + set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} /MD") |
94 | 89 | set(CMAKE_EXE_LINKER_FLAGS_DEBUG "${CMAKE_EXE_LINKER_FLAGS_DEBUG} /NODEFAULTLIB:msvcrt /NODEFAULTLIB:libcmt")
|
95 | 90 | set(CMAKE_EXE_LINKER_FLAGS_RELEASE "${CMAKE_EXE_LINKER_FLAGS_RELEASE} /NODEFAULTLIB:libcmt")
|
96 | 91 |
|
|
106 | 101 | string(REGEX REPLACE "/Z[iI7]" "" CMAKE_${lang}_FLAGS_DEBUG "${CMAKE_${lang}_FLAGS_DEBUG}")
|
107 | 102 | set(CMAKE_${lang}_FLAGS_DEBUG "${CMAKE_${lang}_FLAGS_DEBUG} /Z7")
|
108 | 103 | endforeach()
|
109 |
| - |
110 | 104 | else()
|
111 |
| - if(CMAKE_BUILD_TYPE STREQUAL "Debug") |
112 |
| - add_definitions(-DCOCOS2D_DEBUG=1) |
113 |
| - endif() |
114 |
| - set(CMAKE_C_FLAGS_DEBUG "-g -Wall") |
115 |
| - set(CMAKE_CXX_FLAGS_DEBUG ${CMAKE_C_FLAGS_DEBUG}) |
| 105 | + set(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -g -Wall") |
| 106 | + set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} ${CMAKE_C_FLAGS_DEBUG}") |
116 | 107 | set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -std=c99 -fPIC")
|
117 | 108 | set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11 -Wno-deprecated-declarations -Wno-reorder -Wno-invalid-offsetof -fPIC")
|
118 | 109 | if(CLANG AND NOT ANDROID)
|
119 | 110 | set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -stdlib=libc++")
|
120 | 111 | endif()
|
121 |
| - if(CLANG AND ANDROID AND ANDROID_ARM_MODE STREQUAL thumb AND ANDROID_ABI STREQUAL armeabi) |
122 |
| - string(REPLACE "-mthumb" "-marm" CMAKE_C_FLAGS ${CMAKE_C_FLAGS}) |
123 |
| - string(REPLACE "-mthumb" "-marm" CMAKE_CXX_FLAGS ${CMAKE_CXX_FLAGS}) |
| 112 | + # specail options for android |
| 113 | + if(ANDROID) |
| 114 | + set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fexceptions") |
| 115 | + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fsigned-char -fexceptions") |
| 116 | + set(CMAKE_CXX_CREATE_SHARED_LIBRARY "${CMAKE_CXX_CREATE_SHARED_LIBRARY} -latomic") |
| 117 | + if(CLANG AND ANDROID_ARM_MODE STREQUAL thumb AND ANDROID_ABI STREQUAL armeabi) |
| 118 | + string(REPLACE "-mthumb" "-marm" CMAKE_C_FLAGS ${CMAKE_C_FLAGS}) |
| 119 | + string(REPLACE "-mthumb" "-marm" CMAKE_CXX_FLAGS ${CMAKE_CXX_FLAGS}) |
| 120 | + endif() |
124 | 121 | endif()
|
125 | 122 | endif(MSVC)
|
126 | 123 |
|
127 |
| - # Some macro definitions |
| 124 | + # Set common macro definitions |
| 125 | + if(CMAKE_BUILD_TYPE STREQUAL "Debug") |
| 126 | + add_definitions(-DCOCOS2D_DEBUG=1) |
| 127 | + endif() |
| 128 | + # Set macro definitions for special platforms |
128 | 129 | if(WINDOWS)
|
129 |
| - |
130 | 130 | if(BUILD_SHARED_LIBS)
|
131 | 131 | add_definitions(-D_USRDLL -D_EXPORT_DLL_ -D_USEGUIDLL -D_USREXDLL -D_USRSTUDIODLL)
|
132 | 132 | else()
|
133 | 133 | add_definitions(-DCC_STATIC)
|
134 | 134 | endif()
|
135 |
| - |
136 | 135 | add_definitions(-DCOCOS2DXWIN32_EXPORTS -D_WINDOWS -DWIN32 -D_WIN32)
|
137 | 136 | set(PLATFORM_FOLDER win32)
|
138 | 137 | elseif(APPLE)
|
|
141 | 140 | add_definitions(-DTARGET_OS_MAC)
|
142 | 141 | set(PLATFORM_FOLDER mac)
|
143 | 142 | elseif(IOS)
|
144 |
| - # TARGET_OS_IOS |
145 |
| - # add_definitions(-DTARGET_OS_IPHONE) |
| 143 | + add_definitions(-DTARGET_OS_IPHONE) |
146 | 144 | add_definitions(-DTARGET_OS_IOS)
|
147 | 145 | set(PLATFORM_FOLDER ios)
|
148 | 146 | endif(MACOSX)
|
149 |
| - |
150 | 147 | elseif(LINUX)
|
151 | 148 | add_definitions(-DLINUX)
|
152 | 149 | set(PLATFORM_FOLDER linux)
|
153 | 150 | elseif(ANDROID)
|
154 | 151 | add_definitions(-DUSE_FILE32API)
|
155 | 152 | set(PLATFORM_FOLDER android)
|
156 |
| - set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fexceptions") |
157 |
| - set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fsigned-char -fexceptions") |
158 |
| - set(CMAKE_CXX_CREATE_SHARED_LIBRARY "${CMAKE_CXX_CREATE_SHARED_LIBRARY} -latomic") |
159 |
| - |
160 |
| - if(CLANG AND ANDROID_ARM_MODE STREQUAL thumb AND ANDROID_ABI STREQUAL armeabi) |
161 |
| - string(REPLACE "-mthumb" "-marm" CMAKE_C_FLAGS ${CMAKE_C_FLAGS}) |
162 |
| - string(REPLACE "-mthumb" "-marm" CMAKE_CXX_FLAGS ${CMAKE_CXX_FLAGS}) |
163 |
| - endif() |
164 |
| - |
165 | 153 | else()
|
166 | 154 | message(FATAL_ERROR "Unsupported platform, CMake will exit")
|
167 | 155 | return()
|
|
172 | 160 | set(CMAKE_FIND_ROOT_PATH ${CMAKE_FIND_ROOT_PATH} ${COCOS_EXTERNAL_DIR})
|
173 | 161 | endif()
|
174 | 162 |
|
| 163 | + # extra config for windows |
175 | 164 | if(WINDOWS)
|
176 | 165 | # folder much targets
|
177 | 166 | set_property(GLOBAL PROPERTY USE_FOLDERS ON)
|
|
194 | 183 | endif()
|
195 | 184 | endif()
|
196 | 185 |
|
197 |
| - # check use prebuilt config |
| 186 | + # check prebuilt config |
198 | 187 | if(GEN_COCOS_PREBUILT AND USE_COCOS_PREBUILT)
|
199 | 188 | message(FATAL_ERROR "can't generate prebuilt libs and use prebuilt libs at the same time")
|
200 | 189 | endif()
|
201 |
| - |
202 | 190 | if(GEN_COCOS_PREBUILT OR USE_COCOS_PREBUILT)
|
203 | 191 | if(DEFINED COCOS_PREBUILT_ROOT)
|
204 | 192 | message(STATUS "pre-defined COCOS_PREBUILT_ROOT: ${COCOS_PREBUILT_ROOT}")
|
|
0 commit comments