Как скомпилировать исходные файлы с разными флагами-2 в cmake? - PullRequest
0 голосов
/ 01 июня 2018

Я перевожу свою систему make build в cmake, поэтому мне нужно скомпилировать исходные файлы с разными флагами-2, а затем создать статическую библиотеку.Например, у меня есть

$ (OBJSGEN): $ (OBJDIR1) /%. O: $ (SRCDIR) /%. Cpp

$ (CC) $ (FLAGS) $ (CFLAGS).$ (DFLAGS) $ (EFLAGS1) $ (ВКЛЮЧАЕТ) -c $ <-o $ @ </p>

Может ли кто-нибудь помочь мне?

Заранее спасибо

1 Ответ

0 голосов
/ 01 июня 2018

Вы можете использовать библиотеки объектов CMake для этого:

# compiles source.cpp with -DSOME_DEF=1
add_library(obj1 OBJECT source.cpp)

# This is the "modern" syntax for setting preprocessor definitions:
target_compile_definitions(obj1 PRIVATE SOME_DEF=1)

# compiles source.cpp with -DSOME_DEF=2
add_library(obj2 OBJECT source.cpp)

# This is the "old" way of setting preprocessor definitions:
set_target_properties(obj2 PROPERTIES
    COMPILE_DEFINITIONS SOME_DEF=2)

# creates a static library with both objects
add_library(lib STATIC
    $<TARGET_OBJECTS:obj1>
    $<TARGET_OBJECTS:obj2>)

Редактировать: Я включил CMake 2.8 совместимый способ установки определений препроцессора нацель с использованием set_target_properties.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...