mirror of
https://github.com/panda3d/panda3d.git
synced 2025-09-29 08:15:18 -04:00
CMake: Split out Objective-C++ flags on macOS to fix crash
This now requires CMake 3.16 This is a similar fix as 987f2f036b7d5b0e02a7ed8a2ff0f1029ae0d048 but for CMake
This commit is contained in:
parent
75abee73e2
commit
96b2f3a4d5
@ -24,6 +24,9 @@ endif()
|
|||||||
|
|
||||||
# Set defaults for macOS, must be before project().
|
# Set defaults for macOS, must be before project().
|
||||||
if(APPLE)
|
if(APPLE)
|
||||||
|
# Needed for enable_language(OBJCXX)
|
||||||
|
cmake_minimum_required(VERSION 3.16)
|
||||||
|
|
||||||
set(CMAKE_OSX_DEPLOYMENT_TARGET "10.9" CACHE STRING "Minimum macOS version to target")
|
set(CMAKE_OSX_DEPLOYMENT_TARGET "10.9" CACHE STRING "Minimum macOS version to target")
|
||||||
set(CMAKE_XCODE_ATTRIBUTE_CLANG_CXX_LIBRARY "libc++")
|
set(CMAKE_XCODE_ATTRIBUTE_CLANG_CXX_LIBRARY "libc++")
|
||||||
|
|
||||||
@ -46,6 +49,11 @@ project(Panda3D VERSION ${_version})
|
|||||||
unset(_version)
|
unset(_version)
|
||||||
unset(_s)
|
unset(_s)
|
||||||
|
|
||||||
|
if(APPLE)
|
||||||
|
# Allows separating out C++ flags from ObjC++ flags
|
||||||
|
enable_language(OBJCXX)
|
||||||
|
endif()
|
||||||
|
|
||||||
# Determine the possible build types. Must be *after* calling project().
|
# Determine the possible build types. Must be *after* calling project().
|
||||||
set(_configs Standard Release RelWithDebInfo Debug MinSizeRel)
|
set(_configs Standard Release RelWithDebInfo Debug MinSizeRel)
|
||||||
if(CMAKE_CXX_COMPILER_ID MATCHES "(AppleClang|Clang|GCC)")
|
if(CMAKE_CXX_COMPILER_ID MATCHES "(AppleClang|Clang|GCC)")
|
||||||
|
@ -16,6 +16,7 @@ if(MSVC)
|
|||||||
else()
|
else()
|
||||||
set(CMAKE_C_FLAGS_STANDARD "-O3")
|
set(CMAKE_C_FLAGS_STANDARD "-O3")
|
||||||
set(CMAKE_CXX_FLAGS_STANDARD "-O3")
|
set(CMAKE_CXX_FLAGS_STANDARD "-O3")
|
||||||
|
set(CMAKE_OBJCXX_FLAGS_STANDARD "-O3")
|
||||||
endif()
|
endif()
|
||||||
set(CMAKE_SHARED_LINKER_FLAGS_STANDARD "")
|
set(CMAKE_SHARED_LINKER_FLAGS_STANDARD "")
|
||||||
set(CMAKE_MODULE_LINKER_FLAGS_STANDARD "")
|
set(CMAKE_MODULE_LINKER_FLAGS_STANDARD "")
|
||||||
@ -27,6 +28,8 @@ if(CMAKE_CXX_COMPILER_ID MATCHES "(AppleClang|Clang)")
|
|||||||
"${CMAKE_C_FLAGS_DEBUG} -fprofile-instr-generate -fcoverage-mapping")
|
"${CMAKE_C_FLAGS_DEBUG} -fprofile-instr-generate -fcoverage-mapping")
|
||||||
set(CMAKE_CXX_FLAGS_COVERAGE
|
set(CMAKE_CXX_FLAGS_COVERAGE
|
||||||
"${CMAKE_CXX_FLAGS_DEBUG} -fprofile-instr-generate -fcoverage-mapping")
|
"${CMAKE_CXX_FLAGS_DEBUG} -fprofile-instr-generate -fcoverage-mapping")
|
||||||
|
set(CMAKE_OBJCXX_FLAGS_COVERAGE
|
||||||
|
"${CMAKE_OBJCXX_FLAGS_DEBUG} -fprofile-instr-generate -fcoverage-mapping")
|
||||||
|
|
||||||
set(CMAKE_SHARED_LINKER_FLAGS_COVERAGE
|
set(CMAKE_SHARED_LINKER_FLAGS_COVERAGE
|
||||||
"${CMAKE_SHARED_LINKER_FLAGS_DEBUG} -fprofile-instr-generate")
|
"${CMAKE_SHARED_LINKER_FLAGS_DEBUG} -fprofile-instr-generate")
|
||||||
@ -106,6 +109,9 @@ if(MSVC)
|
|||||||
else()
|
else()
|
||||||
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wall")
|
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wall")
|
||||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall")
|
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall")
|
||||||
|
if(APPLE)
|
||||||
|
set(CMAKE_OBJCXX_FLAGS "${CMAKE_OBJCXX_FLAGS} -Wall")
|
||||||
|
endif()
|
||||||
|
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
@ -133,6 +139,14 @@ if(CMAKE_CXX_COMPILER_ID MATCHES "(GNU|Clang)")
|
|||||||
set(CMAKE_CXX_FLAGS_MINSIZEREL "${CMAKE_CXX_FLAGS_MINSIZEREL} ${release_flags}")
|
set(CMAKE_CXX_FLAGS_MINSIZEREL "${CMAKE_CXX_FLAGS_MINSIZEREL} ${release_flags}")
|
||||||
set(CMAKE_CXX_FLAGS_STANDARD "${CMAKE_CXX_FLAGS_STANDARD} ${standard_flags}")
|
set(CMAKE_CXX_FLAGS_STANDARD "${CMAKE_CXX_FLAGS_STANDARD} ${standard_flags}")
|
||||||
|
|
||||||
|
if(APPLE)
|
||||||
|
set(CMAKE_OBJCXX_FLAGS "${CMAKE_OBJCXX_FLAGS} ${global_flags}")
|
||||||
|
set(CMAKE_OBJCXX_FLAGS_RELEASE "${CMAKE_OBJCXX_FLAGS_RELEASE} ${global_flags}")
|
||||||
|
set(CMAKE_OBJCXX_FLAGS_RELWITHDEBINFO "${CMAKE_OBJCXX_FLAGS_RELWITHDEBINFO} ${global_flags}")
|
||||||
|
set(CMAKE_OBJCXX_FLAGS_MINSIZEREL "${CMAKE_OBJCXX_FLAGS_MINSIZEREL} ${global_flags}")
|
||||||
|
set(CMAKE_OBJCXX_FLAGS_STANDARD "${CMAKE_OBJCXX_FLAGS_STANDARD} ${global_flags}")
|
||||||
|
endif()
|
||||||
|
|
||||||
if(MSVC)
|
if(MSVC)
|
||||||
# Clang behaving as MSVC
|
# Clang behaving as MSVC
|
||||||
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wno-unused-command-line-argument")
|
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wno-unused-command-line-argument")
|
||||||
@ -151,6 +165,7 @@ endif()
|
|||||||
# and stops us from identifying cases where ENABLE_EXPORTS is needed.
|
# and stops us from identifying cases where ENABLE_EXPORTS is needed.
|
||||||
set(CMAKE_SHARED_LIBRARY_LINK_C_FLAGS "")
|
set(CMAKE_SHARED_LIBRARY_LINK_C_FLAGS "")
|
||||||
set(CMAKE_SHARED_LIBRARY_LINK_CXX_FLAGS "")
|
set(CMAKE_SHARED_LIBRARY_LINK_CXX_FLAGS "")
|
||||||
|
set(CMAKE_SHARED_LIBRARY_LINK_OBJCXX_FLAGS "")
|
||||||
|
|
||||||
# As long as we're figuring out compiler flags, figure out the flags for
|
# As long as we're figuring out compiler flags, figure out the flags for
|
||||||
# turning C++ exception support on and off
|
# turning C++ exception support on and off
|
||||||
|
Loading…
x
Reference in New Issue
Block a user