@@ -112,7 +112,6 @@ endif()
112112add_definitions (-DFLATBUFFERS_LOCALE_INDEPENDENT=$<BOOL :${FLATBUFFERS_LOCALE_INDEPENDENT} >)
113113
114114if (NOT WIN32 )
115- include (CheckSymbolExists)
116115 check_symbol_exists(realpath "stdlib.h" HAVE_REALPATH)
117116 if (NOT HAVE_REALPATH)
118117 add_definitions (-DFLATBUFFERS_NO_ABSOLUTE_PATH_RESOLUTION)
@@ -136,6 +135,7 @@ set(FlatBuffers_Library_SRCS
136135 include /flatbuffers/hash.h
137136 include /flatbuffers/idl.h
138137 include /flatbuffers/minireflect.h
138+ include /flatbuffers/options .h
139139 include /flatbuffers/reflection.h
140140 include /flatbuffers/reflection_generated.h
141141 include /flatbuffers/registry.h
@@ -151,6 +151,7 @@ set(FlatBuffers_Library_SRCS
151151 src/idl_gen_text.cpp
152152 src/reflection.cpp
153153 src/util.cpp
154+ src/options .cpp
154155)
155156
156157set (FlatBuffers_Compiler_SRCS
@@ -449,26 +450,35 @@ if(FLATBUFFERS_BUILD_FLATLIB)
449450 endif ()
450451endif ()
451452
453+ option (ENABLE_DEBUG_SYMBOLS "Enable debug symbols for flatc" OFF )
454+
452455if (FLATBUFFERS_BUILD_FLATC)
453456 add_executable (flatc ${FlatBuffers_Compiler_SRCS} )
457+
454458 if (FLATBUFFERS_ENABLE_PCH)
455459 add_pch_to_target(flatc include /flatbuffers/pch/flatc_pch.h)
456460 endif ()
457461
458462 target_link_libraries (flatc PRIVATE $<BUILD_INTERFACE:ProjectConfig>)
463+
459464 target_compile_options (flatc
460465 PRIVATE
461466 $<$<AND :$<BOOL :${MSVC_LIKE} >,$<CONFIG:Release>>:
462467 /MT
463468 >
469+ $<$<BOOL :${ENABLE_DEBUG_SYMBOLS} >:
470+ -g -O0
471+ >
464472 )
465473
466474 if (FLATBUFFERS_CODE_SANITIZE AND NOT WIN32 )
467475 add_fsanitize_to_target(flatc ${FLATBUFFERS_CODE_SANITIZE} )
468476 endif ()
477+
469478 if (NOT FLATBUFFERS_FLATC_EXECUTABLE)
470479 set (FLATBUFFERS_FLATC_EXECUTABLE $<TARGET_FILE:flatc>)
471480 endif ()
481+
472482 if (FLATBUFFERS_STATIC_FLATC AND NOT MSVC )
473483 target_link_libraries (flatc PRIVATE -static )
474484 endif ()
0 commit comments