RNA: support compiling rna files as C++ code #108290

Merged
Jacques Lucke merged 29 commits from JacquesLucke/blender:rna-cpp into main 2023-06-09 11:45:46 +02:00
1 changed files with 25 additions and 4 deletions
Showing only changes of commit 858f5c078a - Show all commits

View File

@ -134,21 +134,42 @@ set_source_files_properties(${GENSRC} PROPERTIES GENERATED TRUE)
# CFLAGS for Generated Files
#
# less strict flags for generated source
set(GENSRC_FLAGS)
set(GENSRC_CFLAGS)
set(GENSRC_CXXFLAGS)
if(CMAKE_COMPILER_IS_GNUCC OR (CMAKE_C_COMPILER_ID MATCHES "Clang"))
set(GENSRC_CFLAGS "-Wno-missing-prototypes -Wno-missing-declarations")
set(GENSRC_CFLAGS "-Wno-missing-prototypes")
set(GENSRC_CXXFLAGS "-Wno-missing-declarations")
endif()
if(CMAKE_C_COMPILER_ID MATCHES "Clang")
string(APPEND GENSRC_CFLAGS " -Wno-missing-variable-declarations")
string(APPEND GENSRC_FLAGS " -Wno-missing-variable-declarations")
elseif(MSVC)
# Restore warn C4100 (unreferenced formal parameter) back to w4
remove_cc_flag(/w34100)
endif()
if(GENSRC_CFLAGS)
set_source_files_properties(${GENSRC} PROPERTIES COMPILE_FLAGS "${GENSRC_CFLAGS}")
set(GENSRC_C ${GENSRC})
list(FILTER GENSRC_C INCLUDE REGEX ".*\.c$")
set(GENSRC_CXX ${GENSRC})
list(FILTER GENSRC_CXX INCLUDE REGEX ".*\.cc$")
if(GENSRC_FLAGS)
set_source_files_properties(${GENSRC} PROPERTIES COMPILE_FLAGS "${GENSRC_FLAGS}")
endif()
if(GENSRC_CFLAGS)
set_source_files_properties(${GENSRC_C} PROPERTIES COMPILE_FLAGS "${GENSRC_CFLAGS}")
endif()
if(GENSRC_CXXFLAGS)
set_source_files_properties(${GENSRC_CXX} PROPERTIES COMPILE_FLAGS "${GENSRC_CXXFLAGS}")
endif()
unset(GENSRC_C)
unset(GENSRC_CXX)
unset(GENSRC_FLAGS)
unset(GENSRC_CFLAGS)
unset(GENSRC_CXXFLAGS)
# NOTE: Disable clang-tidy because generated files are stored outside of the source,