Как прокомментировано, если вам нужны два исполняемых файла, вы должны вызвать команду add_executable()
дважды . Поскольку у вас есть два основных файла. cpp, вы можете вызывать add_executable()
для каждого, добавляя при этом остальные оставшиеся исходные файлы в оба исполняемых файла.
Кроме того, использование команды file(GLOB ...)
не рекомендуется, поскольку CMake не может отслеживать изменения в вашем наборе исходных файлов. Вместо этого вы должны перечислить ваши исходные файлы по отдельности. Ваш CMake может выглядеть примерно так:
set(SOURCES
${CMAKE_CURRENT_SOURCE_DIR}/src/MyClass1.cpp
${CMAKE_CURRENT_SOURCE_DIR}/src/MyClass2.cpp
${CMAKE_CURRENT_SOURCE_DIR}/src/MyHelperFunctions.cpp
)
# Call add_executable() for each main.cpp file.
add_executable(${PROJECT_NAME}_bin_2d
${SOURCES}
main_2d.cpp
)
add_executable(${PROJECT_NAME}_bin_3d
${SOURCES}
main_3d.cpp
)
target_link_libraries(${PROJECT_NAME}_bin_2d ${LIBRARIES})
target_link_libraries(${PROJECT_NAME}_bin_3d ${LIBRARIES})