mirror of
https://github.com/falcosecurity/falco.git
synced 2025-09-12 13:07:49 +00:00
Add RelWithDebInfo target to produce release binary with separate debug symbols file.
Signed-off-by: Shane Lawrence <shane@lawrence.dev>
This commit is contained in:
@@ -23,6 +23,9 @@ endif()
|
|||||||
string(TOLOWER "${CMAKE_BUILD_TYPE}" CMAKE_BUILD_TYPE)
|
string(TOLOWER "${CMAKE_BUILD_TYPE}" CMAKE_BUILD_TYPE)
|
||||||
if(CMAKE_BUILD_TYPE STREQUAL "debug")
|
if(CMAKE_BUILD_TYPE STREQUAL "debug")
|
||||||
set(KBUILD_FLAGS "${FALCO_EXTRA_DEBUG_FLAGS} ${FALCO_EXTRA_FEATURE_FLAGS}")
|
set(KBUILD_FLAGS "${FALCO_EXTRA_DEBUG_FLAGS} ${FALCO_EXTRA_FEATURE_FLAGS}")
|
||||||
|
elseif(CMAKE_BUILD_TYPE STREQUAL "relwithdebinfo")
|
||||||
|
set(KBUILD_FLAGS "${FALCO_EXTRA_FEATURE_FLAGS}")
|
||||||
|
add_definitions(-DBUILD_TYPE_RELWITHDEBINFO)
|
||||||
else()
|
else()
|
||||||
set(CMAKE_BUILD_TYPE "release")
|
set(CMAKE_BUILD_TYPE "release")
|
||||||
set(KBUILD_FLAGS "${FALCO_EXTRA_FEATURE_FLAGS}")
|
set(KBUILD_FLAGS "${FALCO_EXTRA_FEATURE_FLAGS}")
|
||||||
@@ -85,6 +88,17 @@ if(NOT MSVC)
|
|||||||
set(CMAKE_C_FLAGS_RELEASE "-O3 -fno-strict-aliasing -DNDEBUG")
|
set(CMAKE_C_FLAGS_RELEASE "-O3 -fno-strict-aliasing -DNDEBUG")
|
||||||
set(CMAKE_CXX_FLAGS_RELEASE "-O3 -fno-strict-aliasing -DNDEBUG")
|
set(CMAKE_CXX_FLAGS_RELEASE "-O3 -fno-strict-aliasing -DNDEBUG")
|
||||||
|
|
||||||
|
set(CMAKE_C_FLAGS_RELWITHDEBINFO "${CMAKE_C_FLAGS_RELEASE} -g")
|
||||||
|
set(CMAKE_CXX_FLAGS_RELWITHDEBINFO "${CMAKE_CXX_FLAGS_RELEASE} -g")
|
||||||
|
|
||||||
|
# Add linker flags to generate separate debug files
|
||||||
|
set(CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO
|
||||||
|
"${CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO} -Wl,--build-id"
|
||||||
|
)
|
||||||
|
set(CMAKE_SHARED_LINKER_FLAGS_RELWITHDEBINFO
|
||||||
|
"${CMAKE_SHARED_LINKER_FLAGS_RELWITHDEBINFO} -Wl,--build-id"
|
||||||
|
)
|
||||||
|
|
||||||
else() # MSVC
|
else() # MSVC
|
||||||
set(MINIMAL_BUILD ON)
|
set(MINIMAL_BUILD ON)
|
||||||
set(CMAKE_MSVC_RUNTIME_LIBRARY "MultiThreaded$<$<CONFIG:Debug>:Debug>")
|
set(CMAKE_MSVC_RUNTIME_LIBRARY "MultiThreaded$<$<CONFIG:Debug>:Debug>")
|
||||||
@@ -99,6 +113,13 @@ else() # MSVC
|
|||||||
set(FALCOSECURITY_LIBS_COMMON_FLAGS "/EHsc /W3 /Zi /std:c++17")
|
set(FALCOSECURITY_LIBS_COMMON_FLAGS "/EHsc /W3 /Zi /std:c++17")
|
||||||
set(FALCOSECURITY_LIBS_DEBUG_FLAGS "/MTd /Od")
|
set(FALCOSECURITY_LIBS_DEBUG_FLAGS "/MTd /Od")
|
||||||
set(FALCOSECURITY_LIBS_RELEASE_FLAGS "/MT")
|
set(FALCOSECURITY_LIBS_RELEASE_FLAGS "/MT")
|
||||||
|
set(FALCOSECURITY_LIBS_RELWITHDEBINFO_FLAGS "/MT /Zi")
|
||||||
|
|
||||||
|
# Ensure linker generates PDB files for MSVC
|
||||||
|
set(CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO "${CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO} /DEBUG")
|
||||||
|
set(CMAKE_SHARED_LINKER_FLAGS_RELWITHDEBINFO
|
||||||
|
"${CMAKE_SHARED_LINKER_FLAGS_RELWITHDEBINFO} /DEBUG"
|
||||||
|
)
|
||||||
|
|
||||||
set(CMAKE_C_FLAGS "${FALCOSECURITY_LIBS_COMMON_FLAGS}")
|
set(CMAKE_C_FLAGS "${FALCOSECURITY_LIBS_COMMON_FLAGS}")
|
||||||
set(CMAKE_CXX_FLAGS "${FALCOSECURITY_LIBS_COMMON_FLAGS}")
|
set(CMAKE_CXX_FLAGS "${FALCOSECURITY_LIBS_COMMON_FLAGS}")
|
||||||
@@ -109,4 +130,7 @@ else() # MSVC
|
|||||||
set(CMAKE_C_FLAGS_RELEASE "${FALCOSECURITY_LIBS_RELEASE_FLAGS}")
|
set(CMAKE_C_FLAGS_RELEASE "${FALCOSECURITY_LIBS_RELEASE_FLAGS}")
|
||||||
set(CMAKE_CXX_FLAGS_RELEASE "${FALCOSECURITY_LIBS_RELEASE_FLAGS}")
|
set(CMAKE_CXX_FLAGS_RELEASE "${FALCOSECURITY_LIBS_RELEASE_FLAGS}")
|
||||||
|
|
||||||
|
set(CMAKE_C_FLAGS_RELWITHDEBINFO "${FALCOSECURITY_LIBS_RELWITHDEBINFO_FLAGS}")
|
||||||
|
set(CMAKE_CXX_FLAGS_RELWITHDEBINFO "${FALCOSECURITY_LIBS_RELWITHDEBINFO_FLAGS}")
|
||||||
|
|
||||||
endif()
|
endif()
|
||||||
|
@@ -194,6 +194,24 @@ if(MUSL_OPTIMIZED_BUILD AND CMAKE_BUILD_TYPE STREQUAL "release")
|
|||||||
)
|
)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
|
if(CMAKE_BUILD_TYPE STREQUAL "relwithdebinfo" AND NOT WIN32)
|
||||||
|
find_program(OBJCOPY_EXECUTABLE NAMES objcopy)
|
||||||
|
if(OBJCOPY_EXECUTABLE)
|
||||||
|
add_custom_command(
|
||||||
|
TARGET falco
|
||||||
|
POST_BUILD
|
||||||
|
COMMAND ${OBJCOPY_EXECUTABLE} --only-keep-debug $<TARGET_FILE:falco>
|
||||||
|
$<TARGET_FILE:falco>.debug
|
||||||
|
COMMAND ${OBJCOPY_EXECUTABLE} --strip-debug --strip-unneeded $<TARGET_FILE:falco>
|
||||||
|
COMMAND ${OBJCOPY_EXECUTABLE} --add-gnu-debuglink=$<TARGET_FILE:falco>.debug
|
||||||
|
$<TARGET_FILE:falco>
|
||||||
|
COMMENT "Generating separate debug file for falco"
|
||||||
|
)
|
||||||
|
else()
|
||||||
|
message(WARNING "objcopy not found; separate debug files will not be generated.")
|
||||||
|
endif()
|
||||||
|
endif()
|
||||||
|
|
||||||
if(EMSCRIPTEN)
|
if(EMSCRIPTEN)
|
||||||
install(
|
install(
|
||||||
FILES "$<TARGET_FILE_DIR:falco>/falco.js" "$<TARGET_FILE_DIR:falco>/falco.wasm"
|
FILES "$<TARGET_FILE_DIR:falco>/falco.js" "$<TARGET_FILE_DIR:falco>/falco.wasm"
|
||||||
|
Reference in New Issue
Block a user