.cpp ファイルと .h ファイルを少し整理して、それぞれの責任を保留するために、次の構造を使用した別のフォルダーに入れることにしました。
ルート
|
-CMakeLists.txt [rootCmakeList]
src
|
-main.cpp
.......|
....... 数学
.......|
.......-CMakeLists.txt[mathCmakeList]
.......-Algebra.h
.......-Algebra.cpp
....... XML [xmlCmakeList]
... ....|
.......-CMakeLists.txt
.......-AwesomeXML.h
.......-AwesomeXML.cpp
[rootCmakeList] は次のようになります。
cmake_minimum_required(VERSION 3.11.3)
set(CMAKE_CXX_STANDARD 11)
set(CMAKE_CXX_STANDARD_REQUIRED True)
set(CMAKE_CXX_FLAGS_DEBUG "-g")
project(myProject)
#add exectuable
add_executable(myProject src/main.cpp)
target_include_directories(myProject PUBLIC "${src/XML}")
target_include_directories(myProject PUBLIC "${src/math}")
add_subdirectory(src/XML)
add_subdirectory(src/math)
target_link_libraries(myProject xml)#needed?
target_link_libraries(myProject math)#needed?
[mathCmakeList] は次のようになります。
include_directories(${myProject}src/math)
add_library(math Algebra.cpp)
[xmlCmakeList] は次のようになります。
include_directories(${myProject}src/xml)
add_library(xml AwesomeXML.cpp)
これまでのところ良好で、問題はありません。しかし、Algebra.h を AweseomeXML.cpp に #include したい場合、ファイルが見つかりません。
正直なところ、cmake コマンドのadd_libraryとtarget_link_librariesがここで本当に意味があるかどうかさえわかりません。独自のライブラリを作成したくないので、トピックで保留中のファイルを少し片付けたいだけだからです。