Tôi cần viết lệnh tùy chỉnh chạy bất cứ khi nào tệp A mới hơn tệp B. Làm cách nào để thực hiện việc này trong CMake? Cảm ơn!Điều kiện CMake: so sánh dấu thời gian của các tệp
Trả lời
Â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. "
- 1. So sánh dấu thời gian trong cassandra
- 2. So sánh dấu thời gian với thời gian hiện tại từ cơ sở dữ liệu
- 3. MySQL: So sánh GIỮA thời gian
- 4. So sánh phần thời gian của trường datetime trong Hibernate
- 5. So sánh thời gian tập tin hàng loạt của Windows
- 6. So sánh thời gian trong D
- 7. So sánh phần ngày của ngày chỉ với Dấu thời gian trong Hibernate
- 8. Ant regex so sánh trong điều kiện
- 9. Điều gì "không thể được so sánh bởi trình so khớp thời gian" nghĩa là gì?
- 10. Dấu chân python so với thời gian chạy java
- 11. Có thời gian tuyệt đối của Windows cho dấu thời gian không? (.NET)
- 12. So sánh 2 dấu thời gian ISO 8601 và số giây đầu ra/phút
- 13. Làm cách nào để so sánh hai dấu thời gian trong C?
- 14. Làm thế nào để so sánh SQL dấu thời gian trong .NET?
- 15. So sánh ngày Javascript bỏ qua giá trị dấu thời gian
- 16. NEventStore: Cách điều phối các sự kiện không thể so sánh được?
- 17. Chỉ so sánh phần thời gian trong datetime - Python
- 18. Làm cách nào để so sánh dấu thời gian với truy vấn JPA?
- 19. So sánh hai đối tượng DateTime Thời gian Joda
- 20. So sánh thời điểm Hu
- 21. So sánh thời gian trong SQL Server 2008
- 22. So sánh một đồng bằng thời gian trong python
- 23. tệp grep dựa trên dấu thời gian
- 24. có điều kiện dựa trên thời gian
- 25. So sánh hai ngày sử dụng thời gian Joda
- 26. Hãy so sánh ngày mà không cần thời gian
- 27. Chuyển đổi thời gian RFC 3339 thành dấu thời gian chuẩn của Python
- 28. Thêm Dấu thời gian vào tên tệp
- 29. Sử dụng toán tử so sánh bên ngoài điều kiện
- 30. C++: So sánh logic như câu lệnh có điều kiện?