2013-11-27 24 views
8

Làm cách nào để thêm cờ trình biên dịch (Tôi muốn CHIA SẺ nó, không ghi đè lên những người khác) vào một đơn vị dịch với cmake?Gắn cờ trình biên dịch vào một tệp với CMake

Tôi đã thử với

set_source_files_properties(MyFile.cpp PROPERTIES CMAKE_CXX_FLAGS "-msse4.1") 

nhưng nó không làm việc .. bất kỳ lời khuyên về cách để làm điều đó?

Trả lời

15

Thuộc tính chính xác để đặt cờ của tệp nguồn có tên COMPILE_FLAGS. Bởi vì đây là một tài sản chuỗi, cách chính xác để thêm tùy chọn bổ sung là sử dụng APPEND_STRING biến thể của lệnh set_property:

set_property(SOURCE MyFile.cpp APPEND_STRING PROPERTY COMPILE_FLAGS " -msse4.1 ") 

Tùy chọn APPEND_STRING chỉ có sẵn với CMake 2.8.6 hoặc mới hơn.

2

Hãy thử điều này:

set_property(SOURCE MyFile.cpp APPEND PROPERTY CMAKE_CXX_FLAGS "-msse4.1") 

Bằng cách này, một vài thuộc tính là luôn gắn, ví dụ, COMPILE_FLAGS. Đối với những bạn không cần phải làm bất cứ điều gì đặc biệt, chỉ cần đặt họ và họ được nối :)

3

Bạn sắp thực hiện, điều này sẽ làm việc:

set_property(SOURCE MyFile.cpp APPEND PROPERTY CMAKE_CXX_FLAGS -msse4.1) 

Các người giúp đỡ loại cụ thể (như set_source_files_properties()) có thể có ích vào những thời điểm, nhưng chúng có giao diện rất hợp lý. Đối với những thứ không tầm thường, bạn phải sử dụng set_property(). Tôi đã thấy rằng tôi thực sự hiếm khi sử dụng những người trợ giúp.

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