CMake: независимый от платформы бинарный демонтаж для релизных сборок - PullRequest
0 голосов
/ 09 декабря 2018

Как вы можете добавить двоичное разложение к CMake для gcc и clang в качестве шага постобработки, но только в выпусках сборки?MSVC по умолчанию удаляется, поэтому его не нужно обрабатывать.

Одна из проблем заключается в том, что clang не имеет -s флага компиляции, но gcc делает , делая этотаким образом не работает.

Другая идея заключается в использовании команды strip.Переключатель -s снова существует в Linux, но не в XCode (это * набор инструментов разработки Apple).

Поэтому окончательный выбор - использовать команду strip без каких-либо аргументов.кроме самого двоичного файла, который, кажется, является приличным общим решением.Как это можно использовать в CMake?

1 Ответ

0 голосов
/ 09 декабря 2018

В CMake add_custom_command может выполнять команды после сборки, такие как strip.Переменная PROJECT_NAME определяется как ваш целевой двоичный файл, например

# Set the project name
set(PROJECT_NAME "MyProject")
project(${PROJECT_NAME})

Поместите следующий код после add_executable вашего CMakeLists.txt:

# Strip binary for release builds
if (CMAKE_BUILD_TYPE STREQUAL Release)
    add_custom_command(TARGET ${PROJECT_NAME} POST_BUILD
            COMMAND ${CMAKE_STRIP} ${PROJECT_NAME})
endif ()

CMAKE_BUILD_TYPE указывает натип сборки типа Debug или Release.CMAKE_STRIP - это путь к файлу для утилиты strip платформы (например, /usr/bin/strip на Linux).

...