Tôi có dự án chưa được chia thành thư viện, nhưng nguồn được tổ chức trong cây thư mục. Tôi không biết làm thế nào để nói với cmake để đi xuống một thư mục, sau đó thêm nguồn trong thư mục đó để dự án được xác định trong thư mục mẹ. Tôi đã cố gắng như sau:Thêm nguồn trong thư mục con vào dự án cmake
trong dự án/nguồn/CMakelists.txt:
set(SOURCE
${CMAKE_CURRENT_SOURCE_DIR}/unitTest/main.cpp
)
add_subdirectory("${PROJECT_SOURCE_DIR}/folder1")
add_executable(UnitTestRNG ${SOURCE} ${HEADERS})
sau đó trong dự án/nguồn/folder1/CMakeLists.txt:
set(SOURCE
${SOURCE}
${CMAKE_CURRENT_SOURCE_DIR}/file1.cpp
${CMAKE_CURRENT_SOURCE_DIR}/file2.cpp
)
set(HEADERS
${HEADERS}
${CMAKE_CURRENT_SOURCE_DIR}/file1.hpp
${CMAKE_CURRENT_SOURCE_DIR}/file2.hpp
)
sử dụng một số tin nhắn() báo cáo, tôi đã thấy rằng thư mục con sẽ nhận được nội dung của biến SOURCE, nhưng đó là nhiệm vụ mới cho biến đó sẽ không tồn tại khi quay lại trang gốc CMakeLists.txt
Tìm kiếm các ví dụ và hướng dẫn cmake đã dẫn tôi đến kết luận rằng: - Cấu trúc tệp nguồn thường phẳng trong một dự án - Nếu mã được chia thành các thư mục, nó thường được chia thành các thư viện tương ứng.
Tôi tự hỏi nếu có một số "thực hành tốt nhất" mà từ đó tôi đang deviating bằng cách cố gắng cấu trúc này.
Cảm ơn cú pháp! Nó hoạt động rất tốt. – 2NinerRomeo
Đây có phải là cách được khuyến nghị để đạt được điều này trong phiên bản mới nhất của cmake không? – lanoxx