Skip to content

Commit 1f1664a

Browse files
authored
fix cmake win32 macro definitions, and improve (cocos2d#18856)
* fix win32 macro error, improve cmake macro define * add more comments
1 parent cc145cb commit 1f1664a

File tree

1 file changed

+23
-35
lines changed

1 file changed

+23
-35
lines changed

cmake/Modules/CocosCompileOptions.cmake

+23-35
Original file line numberDiff line numberDiff line change
@@ -58,6 +58,7 @@
5858
endif()
5959
endif()
6060

61+
# check and print compiler infos
6162
if("${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang")
6263
set(COMPILER_STRING ${CMAKE_CXX_COMPILER_ID})
6364
set(CLANG TRUE)
@@ -74,23 +75,17 @@
7475
else()
7576
set(COMPILER_STRING "${CMAKE_CXX_COMPILER_ID}")
7677
endif()
77-
7878
if(CMAKE_CROSSCOMPILING)
7979
set(BUILDING_STRING "It appears you are cross compiling for ${SYSTEM_STRING} with ${COMPILER_STRING}")
8080
else()
8181
set(BUILDING_STRING "It appears you are building natively for ${SYSTEM_STRING} with ${COMPILER_STRING}")
8282
endif()
83-
8483
message(STATUS ${BUILDING_STRING})
8584

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
9086
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")
9489
set(CMAKE_EXE_LINKER_FLAGS_DEBUG "${CMAKE_EXE_LINKER_FLAGS_DEBUG} /NODEFAULTLIB:msvcrt /NODEFAULTLIB:libcmt")
9590
set(CMAKE_EXE_LINKER_FLAGS_RELEASE "${CMAKE_EXE_LINKER_FLAGS_RELEASE} /NODEFAULTLIB:libcmt")
9691

@@ -106,33 +101,37 @@
106101
string(REGEX REPLACE "/Z[iI7]" "" CMAKE_${lang}_FLAGS_DEBUG "${CMAKE_${lang}_FLAGS_DEBUG}")
107102
set(CMAKE_${lang}_FLAGS_DEBUG "${CMAKE_${lang}_FLAGS_DEBUG} /Z7")
108103
endforeach()
109-
110104
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}")
116107
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -std=c99 -fPIC")
117108
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11 -Wno-deprecated-declarations -Wno-reorder -Wno-invalid-offsetof -fPIC")
118109
if(CLANG AND NOT ANDROID)
119110
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -stdlib=libc++")
120111
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()
124121
endif()
125122
endif(MSVC)
126123

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
128129
if(WINDOWS)
129-
130130
if(BUILD_SHARED_LIBS)
131131
add_definitions(-D_USRDLL -D_EXPORT_DLL_ -D_USEGUIDLL -D_USREXDLL -D_USRSTUDIODLL)
132132
else()
133133
add_definitions(-DCC_STATIC)
134134
endif()
135-
136135
add_definitions(-DCOCOS2DXWIN32_EXPORTS -D_WINDOWS -DWIN32 -D_WIN32)
137136
set(PLATFORM_FOLDER win32)
138137
elseif(APPLE)
@@ -141,27 +140,16 @@
141140
add_definitions(-DTARGET_OS_MAC)
142141
set(PLATFORM_FOLDER mac)
143142
elseif(IOS)
144-
# TARGET_OS_IOS
145-
# add_definitions(-DTARGET_OS_IPHONE)
143+
add_definitions(-DTARGET_OS_IPHONE)
146144
add_definitions(-DTARGET_OS_IOS)
147145
set(PLATFORM_FOLDER ios)
148146
endif(MACOSX)
149-
150147
elseif(LINUX)
151148
add_definitions(-DLINUX)
152149
set(PLATFORM_FOLDER linux)
153150
elseif(ANDROID)
154151
add_definitions(-DUSE_FILE32API)
155152
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-
165153
else()
166154
message(FATAL_ERROR "Unsupported platform, CMake will exit")
167155
return()
@@ -172,6 +160,7 @@
172160
set(CMAKE_FIND_ROOT_PATH ${CMAKE_FIND_ROOT_PATH} ${COCOS_EXTERNAL_DIR})
173161
endif()
174162

163+
# extra config for windows
175164
if(WINDOWS)
176165
# folder much targets
177166
set_property(GLOBAL PROPERTY USE_FOLDERS ON)
@@ -194,11 +183,10 @@
194183
endif()
195184
endif()
196185

197-
# check use prebuilt config
186+
# check prebuilt config
198187
if(GEN_COCOS_PREBUILT AND USE_COCOS_PREBUILT)
199188
message(FATAL_ERROR "can't generate prebuilt libs and use prebuilt libs at the same time")
200189
endif()
201-
202190
if(GEN_COCOS_PREBUILT OR USE_COCOS_PREBUILT)
203191
if(DEFINED COCOS_PREBUILT_ROOT)
204192
message(STATUS "pre-defined COCOS_PREBUILT_ROOT: ${COCOS_PREBUILT_ROOT}")

0 commit comments

Comments
 (0)