Trong dự án của tôi, tôi có một tệp "lược đồ" và tiện ích mà tôi đã viết để tạo một tệp tiêu đề. Tôi đang sử dụng cmake và ra khỏi xây dựng nguồn để xây dựng ứng dụng.Làm thế nào để tạo ra một tiêu đề trong nguồn với cmake?
Hiện tại tôi phải tạo lại tệp tiêu đề bằng tay rồi tạo ứng dụng.
Sau đó, tôi đã đưa ra tuyên bố này CMakeLists.txt, nhưng họ tạo ra các tiêu đề trong thư mục xây dựng thay vì trong thư mục nguồn.
configure_file(generator.pl generator COPYONLY)
configure_file(schema.txt.in schema.txt COPYONLY)
add_custom_command(
OUTPUT generated.h
COMMAND ./generator schema.txt generated.h
DEPENDS mib_schema.txt.in generator.pl
COMMENT "Regenerating header file..."
)
Có thể tạo tiêu đề trong thư mục nguồn không?
chỉnh sửa (để phản ánh các câu trả lời):
Các tập tin có thể đi thẳng bằng cách tuyển đầy đủ đường đi của nó với một trong hai
${CMAKE_CURRENT_SOURCE_DIR}
hay:
${CMAKE_CURRENT_BINARY_DIR}
Vì vậy, để tạo tiêu đề trong thư mục nguồn của tôi, đoạn trích trước đó từ CMakeLists.txt sẽ trở thành:
add_custom_command(
OUTPUT generated.h
COMMAND ${CMAKE_CURRENT_SOURCE_DIR}/generator.pl ${CMAKE_CURRENT_SOURCE_DIR}/schema.txt.in ${CMAKE_CURRENT_SOURCE_DIR}/generated.h
DEPENDS mib_schema.txt.in generator.pl
COMMENT "Regenerating header file..."
)
thực sự đơn giản hơn. Cảm ơn
--Để
Đây thực sự là một ý tưởng tốt. Nếu tôi có thể lưu tập tin được tạo ra trong thư mục nguồn, nó được đưa vào gói nguồn chính xác những gì tôi muốn (vì cách đó người dùng thư viện của tôi không cần tạo tệp miễn là chúng không sửa đổi trình tạo và/hoặc tệp dữ liệu nguồn.) Điều này có nghĩa là nhiều người hơn có thể biên dịch thư viện của tôi! –