Tôi muốn không cho phép mọi người làm lộn xộn cây nguồn của chúng tôi với các tệp CMake được tạo ... và quan trọng hơn, không cho phép họ bước trên Makefiles
hiện có không thuộc cùng một quá trình xây dựng mà chúng tôi đang sử dụng CMake. (Tốt nhất là không hỏi)Với cmake, bạn sẽ tắt các bản dựng trong nguồn như thế nào?
Con đường tôi đã đưa ra để làm điều này là để có một vài dòng ở đầu CMakeLists.txt
tôi, như sau:
if("${PROJECT_SOURCE_DIR}" STREQUAL "${PROJECT_BINARY_DIR}")
message(SEND_ERROR "In-source builds are not allowed.")
endif("${PROJECT_SOURCE_DIR}" STREQUAL "${PROJECT_BINARY_DIR}")
Tuy nhiên, làm nó theo cách này có vẻ quá dài dòng. Ngoài ra, nếu tôi thử một bản dựng trong nguồn, nó vẫn tạo thư mục CMakeFiles/
và tệp CMakeCache.txt
trong cây nguồn trước khi lỗi được ném.
Tôi có thiếu cách nào tốt hơn để thực hiện việc này không?
Chúng tôi làm điều đó một cách chính xác như thế này. – JesperE
Đây là giải pháp tốt nhất mà tôi đã tìm thấy cho đến nay. Bạn có thể làm cho thông điệp có nhiều thông tin hơn, mặc dù: thông báo (FATAL_ERROR "Xây dựng nguồn trong không được phép. Tạo một thư mục riêng biệt để xây dựng: \ nmkdir build; cd build; cmake .. \ nTrước đó, xóa các tệp đã được tạo: \ nrm -rf CMakeCache.txt CMakeFiles ") – Tronic