2011-10-17 23 views

Trả lời

6

Âm thanh như bạn muốn một cái gì đó tương tự như sau:

add_custom_command(OUTPUT B 
    COMMAND ${CMAKE_COMMAND} -Dinput=A -P script_that_generates_B.cmake 
    DEPENDS A 
) 

đâu "B" là đường dẫn đầy đủ đến tập tin đầu ra, "A" là đường dẫn đầy đủ đến một số tập tin đầu vào, và lệnh là một cái gì đó chạy ở thời gian xây dựng để tạo ra B mỗi khi có thay đổi.

Để quy tắc sản xuất B được thực hiện tại thời gian xây dựng, điều gì đó khác cũng phải phụ thuộc vào B. Nó sẽ xuất hiện dưới dạng DEPENDS của một add_custom_target có trong "tất cả" hoặc dưới dạng tệp nguồn vào lệnh add_library hoặc add_executable để kích hoạt lệnh để chạy.

EDIT:

Bạn cũng có thể sử dụng cấu trúc

if(file1 IS_NEWER_THAN file2) 

tại CMake cấu hình thời gian, nếu cần thiết. Tài liệu của lệnh IF khá dài, nhưng searching on this page cho IS_NEWER_THAN mang lại số nugget này:

"Đúng nếu tệp1 mới hơn tệp 2 hoặc nếu một trong hai tệp không tồn tại. Hành vi chỉ được xác định đầy đủ đường dẫn. "

Các vấn đề liên quan