Tôi có một CMakeLists.txt trong thư mục gốc của dự án và một trong thư mục/src của tôi. Cái trong thư mục/src chỉ chứa một biến với các tệp .cpp (set (SOURCEFILES main.cpp foo.cpp)
) và trong thư mục gốc CMakeLists.txt tôi làm add_subdirectory(src)
và sau đó tôi làm add_executable(MyApp ${SOURCEFILES})
.phạm vi biến cmake, add_subdirectory
Nhưng cmake mang lại cho tôi những lỗi
add_executable gọi với số không chính xác của các đối số, không có nguồn cung cấp
Làm thế nào để tôi nhận được cmake để xem biến? Tôi đọc rằng cmake chỉ biết các biến toàn cầu, nhưng rõ ràng không phải là trường hợp ...
Thanks, điều này giải quyết nó. Nhưng một lưu ý khác: trong thư mục con bạn có thể sử dụng '$ {CMAKE_CURRENT_SOURCE_DIR}/foo.cpp' thay vì chỉ' foo.cpp' vì cmake bây giờ nằm trong phạm vi cha. – blubberbernd
Ngoài ra, bạn có thể đặt biến trong tệp CMakeLists.txt gốc trước cuộc gọi add_subdirectory và có định nghĩa của nó được kế thừa xuống tệp con CMakeLists. Một lần nữa, bạn sẽ cần phải đủ điều kiện tên của các tập tin nếu bạn cần phải tham khảo chúng từ nhiều tập tin CMakeLists. – DLRdave
Bạn cũng cần tạo biến trong phạm vi hiện tại để sử dụng các giá trị của nó trong thư mục con/hàm: 'set (giá trị VAR PARENT_SCOPE); được đặt (VAR $ {VAR}); ' –