Tôi có một dự án theo CMake với một số tập tin được tạo với máy phát điện python từ các tập tin XML. Tôi không thể chỉ định tất cả các tập tin được tạo ra bởi máy phát điện này trong CMakeLists.txt vì vậy tôi sử dụng tập tin globbing cho việc này.Làm thế nào để làm cho cấu hình lại CMake phụ thuộc vào tệp tùy chỉnh?
Vấn đề là khi tôi cập nhật các tệp XML hoặc nguồn phát của tôi (nằm trong cùng một kho lưu trữ), tôi muốn cấu hình lại hệ thống xây dựng của mình để thay đổi tệp khi xây dựng lại mã.).
Có thể làm CMake điều trị một số file như nó xử lý các file CMakeLists.txt và để làm cho nó tái tạo xây dựng hệ thống khi những tập tin được thay đổi?
Nó cấu hình lại dự án nhưng có một vấn đề khác. Tôi đang sử dụng add_custom_command và add_custom_target kích hoạt tái tạo các tệp nhưng các mục tiêu đó được thực hiện trong một thời điểm khác với cấu hình lại. Bạn có nghĩ là nó có thể chạy reconfigure ngay sau khi những mục tiêu này là xây dựng và sau đó CMake thể phát hiện sự thay đổi? Tôi 99% chắc chắn rằng không thể và tôi nghĩ rằng tôi sẽ bị buộc phải sử dụng execute_command thay vì add_custom_command nhưng nếu bạn biết câu trả lời tôi sẽ aprieciate nó. – Netrix
@Netrix Bạn đang pha trộn thời gian. Các lệnh của 'add_custom_target' và 'add_custom_command' được thực hiện tại thời gian xây dựng (ví dụ: khi bạn chạy' make'). Điều này là khá không liên quan đến thời gian cấu hình CMake (khi CMake đang chạy). Khi thời gian xây dựng bắt đầu (tức là các lệnh tùy chỉnh đang chạy), CMake không còn trong hình ảnh - chạy của nó đã kết thúc. – Angew
Tôi nghĩ vậy. Vì vậy, tôi đoán chỉ có giải pháp sẽ được để tạo ra tất cả các tập tin trong thời gian cấu hình với execute_process và sau đó tập tin (GLOB) những tập tin và thêm vào mục tiêu. Tôi có đúng không? – Netrix