workspace environment:
Clang: 9.0.0
;
Llvm-gcc: 4.2.1
;
Visual Studio Code v1.63.2
;
Code Runner v0.11.6
(Author: Jun Han);
CodeLLDB v1.4.5
or v1.5.0
(Author: Vadim Chugunov).
The Architecture of workspace are:
mainSub
|
|_.vscode
| |__c_cpp_properties.json
| |__launch.json
| |__settings.json
| |__tasks.json
|_apps
| |__CMakeLists.txt
| |__main.cpp
|_build
| |_debug
| |_release
|_common
| |_include
| | |__Pet.h
| |_source
| | |__Pet.cpp
| |__CMakeLists.txt
|__CMakeLists.txt
|__comsepeapp_cmake_compile_problem.md
I will add the 9 file via adding file except the subdirectory CMakeLists.
CMakeLists.txt under ~/apps/CMakeLists.txt
# using main.cpp to product main.cpp.o, then using main.cpp.o to generate
# target main
add_executable(main main.cpp)
# add sub directory class
# add_subdirectory(sub_directoy)
# target file to link sub_directory
# target_link_libraries(main
# PRIVATE
# sub_directory_A
# sub_directory_B
# ...
# apposed_directory_A
# apposed_directory_B
# ...
# )
target_link_libraries(main
PRIVATE
petactive
)
CMakeLists.txt under ~/common/CMakeLists.txt
add_library(petactive "")
target_sources(petactive
PRIVATE
${CMAKE_CURRENT_LIST_DIR}/source/Pet.cpp
PUBLIC
${CMAKE_CURRENT_LIST_DIR}/include/Pet.h
)
target_include_directories(petactive
PUBLIC
${CMAKE_CURRENT_LIST_DIR}
)