У меня следующая структура проекта:
Core
|—Data
| |—CMakeLists.txt
| |—Window
| | |—CMakeLists.txt
| | |—Window.h
| | |—Window.cpp
| |—Out
| |—CMakeLists.txt
| |—Out.h
| |—Out.cpp
|—CMakeLists.txt
|—Main.h
|—Main.cpp
Где Data хранит в. Себе все модули программы.
Пока что написал в CMakeLists.txt следующее:
Corecmake_minimum_requred(VERSION 3.4)
Project(Core)
add_executable(Core Main.h Main.cpp)
add_subdirectory(Data)
set_property(Core PROPERTY CXX_STANDARD 20)
Datacmake_minimum_requred(VERSION 3.4)
add_subdirectory(Window)
add_subdirectory(Out)
Windowcmake_minimum_requred(VERSION 3.4)
add_library(Window STATIC Window.h Window.cpp)
set_property(Window PROPERTY CXX_STANDARD 20)
Outcmake_minimum_requred(VERSION 3.4)
add_library(Out STATIC Out.h Out.cpp)
set_property(Out PROPERTY CXX_STANDARD 20)
На данный момент всё собирается, но возникает ошибка при запуске не разрешённый внешний символ. Скорее всего просто я не правильно подключил библиотеки в CMake.
П.С. мне бы хотелось оставить такую форму подключения, чтобы все модули подключались в Data, а потом уже в корневой директории.