5 / 5 / 5
Регистрация: 05.02.2013
Сообщений: 197
|
||||||
1 | ||||||
Конфигурирование сборки проекта с использованием CMake и CMakeLists.txt18.08.2017, 00:04. Показов 3631. Ответов 5
Добрый день!
Подскажите пожалуйста как в Cmake настроить 2 цели сборки 1. Release 2. Test Архитектура проекта - такая: ├── include │** └── Math │** └── Math.h ├── source │** ├── main.cpp │** └── Math │** └── Math.cpp ├── tests └──CMakeLists.txt В файле Math.cpp хочется писать:
Кликните здесь для просмотра всего текста
cmake_minimum_required(VERSION 3.8)
project(test_project_1) set(CMAKE_CXX_STANDARD 17) include_directories(/include/) file(GLOB_RECURSE SOURCE_FILES include/*.h include/*.hpp source/*.c source/*.cpp) add_executable(test_project_1 ${SOURCE_FILES}) Но в Math.cpp данный include не работает. Для цели Test - необходимо включать все файлы из include/source за исключением main, а также файлы из tests Подскажите, пожалуйста, с чего можно начать! Спасибо!
0
|
|
18.08.2017, 00:04 | |
Ответы с готовыми решениями:
5
CMake и организация сборки проекта Сборка проекта cmake с вложенными cmake Собрать CMakeLists.txt |
![]() 8738 / 4316 / 960
Регистрация: 15.11.2014
Сообщений: 9,760
|
|
18.08.2017, 00:07 | 2 |
├── include
│** └── Math │******** └── Math.h Код
list(APPEND PATH_INCLUDES ${gPATH_SRC}/include) include_directories(${PATH_INCLUDES})
0
|
5 / 5 / 5
Регистрация: 05.02.2013
Сообщений: 197
|
||||||
18.08.2017, 00:12 [ТС] | 3 | |||||
Проект и имеет такую структуру, не обратил внимание когда копипастил вывод с консоли
В Math.cpp собственно хотелось бы написать\
0
|
5 / 5 / 5
Регистрация: 05.02.2013
Сообщений: 197
|
|
18.08.2017, 08:47 [ТС] | 4 |
Такой вариант, к сожалению не работает.
Кликните здесь для просмотра всего текста
cmake_minimum_required(VERSION 3.8)
project(test_project_1) set(CMAKE_CXX_STANDARD 17) #set(INCLUDE_DIR /include) #include_directories(INCLUDE_DIR) #include_directories(/include/) file(GLOB_RECURSE SOURCE_FILES include/*.h include/*.hpp source/*.c source/*.cpp) list(APPEND PATH_INCLUDES /include) include_directories(${PATH_INCLUDES}) add_executable(test_project_1 ${SOURCE_FILES}) Добавлено через 8 часов 32 минуты Не появилось идеи? (
0
|
![]() 8738 / 4316 / 960
Регистрация: 15.11.2014
Сообщений: 9,760
|
||||||||||||||||
18.08.2017, 11:36 | 5 | |||||||||||||||
![]() Решение
тут нечего думать.
все предельно просто, ясно и понятно: карта проекта: Код
executable |--- include | `-- executable | `-- executable.h |--- source | |--- executable.cpp | `-- main.cpp | |--- CMakeLists.txt |--- msvc-release.bat `-- map.txt
Код
cmake_minimum_required(VERSION 2.8) #--- имя проекта совпадает с именем каталога проекта get_filename_component(PROJECT_NAME ${CMAKE_CURRENT_SOURCE_DIR} NAME) #--- имя главной цели. CXX значает, что проект на с++ project( ${PROJECT_NAME} CXX ) ######################################################################## #--- обработка хедеров if(IS_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/include) list(APPEND PATH_INCLUDES ${CMAKE_CURRENT_SOURCE_DIR}/include) FILE (GLOB_RECURSE HEADERS ${CMAKE_CURRENT_SOURCE_DIR}/include/*) endif() include_directories(${PATH_INCLUDES}) ######################################################################## #--- обработка cpp-файлов FILE (GLOB_RECURSE SOURCES ${CMAKE_CURRENT_SOURCE_DIR}/source/*) ######################################################################## #--- создание цели проекта add_executable(${PROJECT_NAME} ${SOURCES} ${HEADERS} ) ########################################################################
1
|
5 / 5 / 5
Регистрация: 05.02.2013
Сообщений: 197
|
|
19.08.2017, 15:05 [ТС] | 6 |
Спасибо тебе большое, добрый человек!)
Всё заработало!
0
|
19.08.2017, 15:05 | |
19.08.2017, 15:05 | |
Помогаю со студенческими работами здесь
6
Не выходит добавить boost в CMakeLists.txt
Как подключить Boost::serialization в CMakeLists.txt? Как добавить библиотеку Xtst (это X11 расширение) в cmakelists.txt ? Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |