mirror of
https://github.com/Cisco-Talos/clamav.git
synced 2025-10-19 18:33:16 +00:00
CMake: Rust RelWithDebInfo and MinSizeRel builds
RelWithDebInfo is our preferred build type. It has optimizations and should run faster, but includes debugging symbols for better profiling, stack traces, etc. The Rust MinSizeRel support is just Release mode for now. There are optimizations we can do to shrink it further, but for now at least it won't actually be Debug (aka slow).
This commit is contained in:
parent
0037f5825b
commit
0fe0b79b94
1 changed files with 9 additions and 4 deletions
|
@ -165,8 +165,8 @@ function(add_rust_library)
|
|||
if ("${CMAKE_OSX_ARCHITECTURES}" MATCHES "^arm64;x86_64$")
|
||||
add_custom_command(
|
||||
OUTPUT "${OUTPUT}"
|
||||
COMMAND ${CMAKE_COMMAND} -E env "CARGO_CMD=build" "CARGO_TARGET_DIR=${CMAKE_CURRENT_BINARY_DIR}" "MAINTAINER_MODE=${MAINTAINER_MODE}" ${cargo_EXECUTABLE} ARGS ${MY_CARGO_ARGS} --target=x86_64-apple-darwin
|
||||
COMMAND ${CMAKE_COMMAND} -E env "CARGO_CMD=build" "CARGO_TARGET_DIR=${CMAKE_CURRENT_BINARY_DIR}" "MAINTAINER_MODE=${MAINTAINER_MODE}" ${cargo_EXECUTABLE} ARGS ${MY_CARGO_ARGS} --target=aarch64-apple-darwin
|
||||
COMMAND ${CMAKE_COMMAND} -E env "CARGO_CMD=build" "CARGO_TARGET_DIR=${CMAKE_CURRENT_BINARY_DIR}" "MAINTAINER_MODE=${MAINTAINER_MODE}" "RUSTFLAGS=\"${RUSTFLAGS}\"" ${cargo_EXECUTABLE} ARGS ${MY_CARGO_ARGS} --target=x86_64-apple-darwin
|
||||
COMMAND ${CMAKE_COMMAND} -E env "CARGO_CMD=build" "CARGO_TARGET_DIR=${CMAKE_CURRENT_BINARY_DIR}" "MAINTAINER_MODE=${MAINTAINER_MODE}" "RUSTFLAGS=\"${RUSTFLAGS}\"" ${cargo_EXECUTABLE} ARGS ${MY_CARGO_ARGS} --target=aarch64-apple-darwin
|
||||
COMMAND ${CMAKE_COMMAND} -E make_directory "${CMAKE_CURRENT_BINARY_DIR}/${LIB_TARGET}/${LIB_BUILD_TYPE}"
|
||||
COMMAND lipo ARGS -create ${CMAKE_CURRENT_BINARY_DIR}/x86_64-apple-darwin/${LIB_BUILD_TYPE}/lib${ARGS_TARGET}.a ${CMAKE_CURRENT_BINARY_DIR}/aarch64-apple-darwin/${LIB_BUILD_TYPE}/lib${ARGS_TARGET}.a -output "${OUTPUT}"
|
||||
WORKING_DIRECTORY "${ARGS_WORKING_DIRECTORY}"
|
||||
|
@ -175,7 +175,7 @@ function(add_rust_library)
|
|||
else()
|
||||
add_custom_command(
|
||||
OUTPUT "${OUTPUT}"
|
||||
COMMAND ${CMAKE_COMMAND} -E env "CARGO_CMD=build" "CARGO_TARGET_DIR=${CMAKE_CURRENT_BINARY_DIR}" "MAINTAINER_MODE=${MAINTAINER_MODE}" ${cargo_EXECUTABLE} ARGS ${MY_CARGO_ARGS}
|
||||
COMMAND ${CMAKE_COMMAND} -E env "CARGO_CMD=build" "CARGO_TARGET_DIR=${CMAKE_CURRENT_BINARY_DIR}" "MAINTAINER_MODE=${MAINTAINER_MODE}" "RUSTFLAGS=\"${RUSTFLAGS}\"" ${cargo_EXECUTABLE} ARGS ${MY_CARGO_ARGS}
|
||||
WORKING_DIRECTORY "${ARGS_WORKING_DIRECTORY}"
|
||||
DEPENDS ${LIB_SOURCES}
|
||||
COMMENT "Building ${ARGS_TARGET} in ${ARGS_WORKING_DIRECTORY} with: ${cargo_EXECUTABLE} ${MY_CARGO_ARGS_STRING}")
|
||||
|
@ -350,11 +350,16 @@ else()
|
|||
endif()
|
||||
endif()
|
||||
|
||||
set(RUSTFLAGS "")
|
||||
if(NOT CMAKE_BUILD_TYPE)
|
||||
set(LIB_BUILD_TYPE "debug")
|
||||
elseif(${CMAKE_BUILD_TYPE} STREQUAL "Release")
|
||||
elseif(${CMAKE_BUILD_TYPE} STREQUAL "Release" OR ${CMAKE_BUILD_TYPE} STREQUAL "MinSizeRel")
|
||||
set(LIB_BUILD_TYPE "release")
|
||||
list(APPEND CARGO_ARGS "--release")
|
||||
elseif(${CMAKE_BUILD_TYPE} STREQUAL "RelWithDebInfo")
|
||||
set(LIB_BUILD_TYPE "release")
|
||||
list(APPEND CARGO_ARGS "--release")
|
||||
set(RUSTFLAGS "-g")
|
||||
else()
|
||||
set(LIB_BUILD_TYPE "debug")
|
||||
endif()
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue