CMake: Disable C++ exceptions everywhere that doesn't request them

This commit is contained in:
Sam Edwards 2018-10-15 23:49:05 -06:00
parent 983d7fa6b9
commit 2c0b079dc9
2 changed files with 15 additions and 0 deletions

View File

@ -77,6 +77,20 @@ if(WIN32)
add_definitions(-D_CRT_SECURE_NO_WARNINGS)
endif()
# As long as we're figuring out compiler flags, figure out the flags for
# turning C++ exception support on and off
if(MSVC)
set(cxx_exceptions_on "/EHsc")
set(cxx_exceptions_off "/D_HAS_EXCEPTIONS=0")
else()
set(cxx_exceptions_on "-fexceptions")
set(cxx_exceptions_off "-fno-exceptions")
endif()
set(cxx_exceptions_property "$<BOOL:$<TARGET_PROPERTY:CXX_EXCEPTIONS>>")
add_compile_options(
"$<${cxx_exceptions_property}:${cxx_exceptions_on}>"
"$<$<NOT:${cxx_exceptions_property}>:${cxx_exceptions_off}>")
# Include global modules needed for configure scripts
include(PackageConfig) # Defines package_option

View File

@ -34,6 +34,7 @@ composite_sources(p3pnmimagetypes P3PNMIMAGETYPES_SOURCES)
add_component_library(p3pnmimagetypes SYMBOL BUILDING_PANDA_PNMIMAGETYPES
${P3PNMIMAGETYPES_HEADERS} ${P3PNMIMAGETYPES_SOURCES})
target_link_libraries(p3pnmimagetypes p3pnmimage PKG::JPEG PKG::TIFF PKG::PNG)
set_target_properties(p3pnmimagetypes PROPERTIES CXX_EXCEPTIONS ON)
if(NOT BUILD_METALIBS)
install(TARGETS p3pnmimagetypes DESTINATION lib RUNTIME DESTINATION bin)