从 cc 命令行翻译成 CMakeLists.txt
Translate from cc command line to CMakeLists.txt
我想在我的项目中使用 cmake,但我必须这样定义预处理器宏:
#if defined CONFIG_TEXTUI
void BoardView_init (void)
{
}
void BoardView_free (void)
{
}
void BoardView_displayAll (void)
{
}
void BoardView_displaySquare (Coordinate x, Coordinate y, PieceType kindOfPiece)
{
BoardView_displayAll();
}
void BoardView_displayEndOfGame (GameResult result)
{
// TODO: à compléter
}
void BoardView_displayPlayersTurn (PieceType thisPlayer)
{
// TODO: à compléter
}
void BoardView_sayCannotPutPiece (void)
{
// TODO: à compléter
}
#endif // defined CONFIG_TEXTUI
问题是文件是这样编译的:gcc -std=c99 -DCONFIG_TEXTUI -DCONFIG_PLAYER_MANAGER_MOCK -o etape1 main.c board.c game.c board_view_text.c tictactoe_erros.c player_manager_mock.c
如何在 cmake (-DCONFIG_TEXTUI) 中指定这些选项?
这是我的真实 CMakeLists.txt :
cmake_minimum_required(VERSION 3.15)
project(morpion C)
set(CMAKE_C_STANDARD 99)
add_executable(morpion main.c game.c board.c player_manager_mock.c board_view_text.c tictactoe_erros.c test_checkEndOfGame.c)
set_property(GLOBAL PROPERTY DCONFIG_TEXTUI)
set_property(GLOBAL PROPERTY DCONFIG_PLAYER_MANAGER_MOCK)
预处理器宏定义为add_compile_definitions()
:https://cmake.org/cmake/help/latest/command/add_compile_definitions.html#command:add_compile_definitions
在你的情况下你需要:
add_compile_definitions(CONFIG_TEXTUI CONFIG_PLAYER_MANAGER_MOCK)
我想在我的项目中使用 cmake,但我必须这样定义预处理器宏:
#if defined CONFIG_TEXTUI
void BoardView_init (void)
{
}
void BoardView_free (void)
{
}
void BoardView_displayAll (void)
{
}
void BoardView_displaySquare (Coordinate x, Coordinate y, PieceType kindOfPiece)
{
BoardView_displayAll();
}
void BoardView_displayEndOfGame (GameResult result)
{
// TODO: à compléter
}
void BoardView_displayPlayersTurn (PieceType thisPlayer)
{
// TODO: à compléter
}
void BoardView_sayCannotPutPiece (void)
{
// TODO: à compléter
}
#endif // defined CONFIG_TEXTUI
问题是文件是这样编译的:gcc -std=c99 -DCONFIG_TEXTUI -DCONFIG_PLAYER_MANAGER_MOCK -o etape1 main.c board.c game.c board_view_text.c tictactoe_erros.c player_manager_mock.c
如何在 cmake (-DCONFIG_TEXTUI) 中指定这些选项?
这是我的真实 CMakeLists.txt :
cmake_minimum_required(VERSION 3.15)
project(morpion C)
set(CMAKE_C_STANDARD 99)
add_executable(morpion main.c game.c board.c player_manager_mock.c board_view_text.c tictactoe_erros.c test_checkEndOfGame.c)
set_property(GLOBAL PROPERTY DCONFIG_TEXTUI)
set_property(GLOBAL PROPERTY DCONFIG_PLAYER_MANAGER_MOCK)
预处理器宏定义为add_compile_definitions()
:https://cmake.org/cmake/help/latest/command/add_compile_definitions.html#command:add_compile_definitions
在你的情况下你需要:
add_compile_definitions(CONFIG_TEXTUI CONFIG_PLAYER_MANAGER_MOCK)