Tôi cần biên dịch các phiên bản khác nhau của một dự án nhất định bằng cách thêm trình chuyển đổi trình biên dịch. Thông thường, tôi sẽ làm điều này bằng cách sử dụng add_definitions hoặc một cái gì đó nhưDòng lệnh CMake cho C++ #define
set_property(TARGET mylib PROPERTY COMPILE_DEFINITIONS _MYDEFINE=1)
trong tệp CMakeLists.txt.
Tuy nhiên, trong dự án cụ thể này, Tôi không được phép sửa đổi bất kỳ nguồn nào, bao gồm tệp CMakeLists.txt.
Tôi đã hy vọng rằng một cái gì đó giống như
cmake -D_MYDEFINE=1 <path to sources>
sẽ tạo ra một file dự án (Visual Studio 2008 trong trường hợp của tôi, nhưng không nên quan trọng) trong đó bao gồm _MYDEFINE = 1 trong định nghĩa preprocessor của nó, nhưng trên thực tế nó đã giành 't.
Tùy chọn của tôi ở đây là gì? Có một tùy chọn dòng lệnh cmake khác để đạt được điều này không? Hãy đề xuất các giải pháp không bao gồm dòng lệnh, miễn là thay đổi CMakeLists.txt của dự án là không cần thiết.
Hm thư mục% APPDATA% \ Microsoft của tôi không có bất kỳ thư mục MSBuild nào (Tôi đang sử dụng Windows XP btw) –
Ok, tôi đang sử dụng Visual Studio 2010. Tôi sẽ tìm các cài đặt 2008. – Naszta
+1 cho bản cập nhật Microsoft.Cpp.Win32.user.props, cần thêm chỉ thị prepocessor mà không thay đổi .vcxproj – watbywbarif