2013-11-15 21 views
7

Công ty của tôi có trình biên dịch idl riêng của họ và tôi có CMake tạo tệp như là một phần của quá trình xây dựng. Tôi muốn các tập tin .idl được trong dự án studio trực quan, nhưng điều đó có nghĩa là tôi kết thúc với microsoft cố gắng để biên dịch các tập tin idl với midl (mà không miserably).Thêm tệp vào CMake nhưng không biên dịch chúng

Tôi biết câu hỏi của tôi là cực kỳ giống với Adding data files to cmake-generated projects, nhưng sự khác biệt chính là microsoft không có trình biên dịch tôi chỉ không muốn họ sử dụng nó.

-update-

Đây là một mẫu mã từ các chức năng có thêm các tập tin IDL vào dung dịch (The toàn bộ mã là quá nhiều, nhưng nếu có bất kỳ tuyên bố nào có thể giúp đỡ trong việc trả lời câu hỏi cho tôi biết):

function foo() 
    add_custom_command... 
    set(HEADERS ${HEADERS} bar.idl PARENT_SCOPE) 
    source_group("Source Files\\idl Files" REGULAR_EXPRESSION .*.idl) 
endfunction() 

Rồi sau đó - sau khi tôi gọi foo - tôi gọi add_executable(${PROJECT_NAME} ${SOURCES} ${HEADERS})

Một điều tôi nhận thấy là nmake sẽ biên dịch làm thế nào tôi muốn nó để biên dịch, nhưng visual studio cho biết thêm cuộc gọi đến midl mà tôi không wa nt.

Mọi trợ giúp sẽ được đánh giá cao.

-update 2-

Tôi có thể hack cách 'khắc phục sự cố' bằng cách thêm /? đến dòng lệnh midl bên trong studio trực quan (nhưng tôi không thể yêu cầu mỗi dev làm điều đó mỗi khi họ xây dựng), vì vậy nếu có ai biết cách thêm đối số vào dòng lệnh midl từ cmake cũng sẽ hữu ích.

Trả lời

5

Đó có lẽ cũng là một chút của một hack, nhưng tôi nghĩ rằng bạn có thể đạt được điều này bằng cách đánh dấu các tập tin .idl như HEADER_FILE_ONLY:

set_source_files_properties(${HEADERS} PROPERTIES HEADER_FILE_ONLY TRUE) 
+0

Làm việc như một nét duyên dáng, và giúp với một điều đó là một tốt đẹp để haves. Cảm ơn bạn rất nhiều! –

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