Đối với một số kiểm tra nội bộ, tôi muốn tiền tố cài đặt mặc định cho thư mục con của thư mục xây dựng, trừ khi người dùng ghi đè rõ ràng. Tôi biết người dùng có thể chỉ định một tiền tố cài đặt bằng cách:Đặt tiền tố cài đặt tự động vào đường dẫn tùy chỉnh nếu không được chỉ định rõ ràng trên dòng lệnh
$ cmake -DCMAKE_INSTALL_PREFIX=/foo/bar ..
Nhưng nếu người dùng không không định này, nên mặc định, ví dụ ${PWD}/installed
.
Biến CMAKE_INSTALL_PREFIX
đã được đặt thành /usr/local
, vì vậy tôi không thể chỉ kiểm tra xem nó chưa được đặt/trống trước khi đặt.
giải pháp hiện tại của tôi là thêm một công tắc tùy chỉnh mà người dùng phải gọi để xác định rằng biến CMAKE_INSTALL_PREFIX
được tôn trọng:
option(ENABLE_INSTALL_PREFIX "Install build targets to system (path given by '-DCMAKE_INSTALL_PREFIX' or '${CMAKE_INSTALL_PREFIX}' if not specified)." OFF)
if (ENABLE_INSTALL_PREFIX)
set (CMAKE_INSTALL_PREFIX installed CACHE PATH "Installation root")
else()
set (CMAKE_INSTALL_PREFIX installed CACHE PATH "Installation root" FORCE)
endif()
Câu hỏi của tôi là:
(a) Có bất kỳ vấn đề với những điều trên, vượt quá sự bực mình của lá cờ phụ cần được chuyển đến CMake để có được CMAKE_INSTALL_PREFIX
để có hiệu lực?
(b) Có cách nào tốt hơn, sạch hơn, mạnh mẽ hơn, thành ngữ và/hoặc ít phiền toái hơn để đạt được điều này không?
Cảm ơn.
Hoàn hảo! Cảm ơn! – Jeet
Tôi ước gì tôi tìm thấy bài đăng này một vài ngày trước trong khi tôi đã kéo tóc ra cố gắng để có được nhiều phụ thuộc ExternalProject để làm điều đúng. Cảm ơn! – KarateSnowMachine