cmake: сборка нескольких версий программы - PullRequest
1 голос
/ 19 июля 2010

Я хотел бы написать скрипт cmake, который скомпилирует один и тот же исходный код для нескольких версий заголовочных файлов. Цель состоит в том, чтобы иметь возможность легко создавать общие библиотеки, которые обратно совместимы с более ранними версиями API.

Я ищу примеры и указатели на лучший способ сделать это.

Я новичок в c ++ и cmake, поэтому любая помощь будет принята с благодарностью.

1 Ответ

4 голосов
/ 20 июля 2010

Этот ответ немного не в моей голове, поэтому возьмите его с крошкой соли.

В своем исходном коде сделайте следующее:

#ifdef Version_1_0
#include "Header_1_0.h"
#endif

#ifdef Version_2_0
#include "Header_2_0.h"
#endif

В CMakeLists.txt файл делает это:

add_library ( Foo_Version_1_0 SHARED Foo.cxx Header_1_0.h )
# When you compile Foo_Version_1_0, define "Version_1_0"
set_target_properties ( Foo_Version_1_0 PROPERTIES COMPILE_FLAGS -DVersion1_0 )

# Likewise for Version_2_0
...

Когда вы закончите сборку, у вас должно быть две библиотеки с именами libFoo_Version_1_0.so и libFoo_Version_2_0.so.

Cheers,
-dan

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