Gần đây tôi đã chuyển dự án Qt
của mình từ qmake
đến CMake
. Chương trình chính của tôi chứa một giá trị phụ thuộc vào chỉ thị #define
.Cách tạo chương trình có 2 giá trị khác nhau của biến trong CMake
Tôi muốn chỉ định xác định chỉ thị bên ngoài thông qua CMake
và tạo 3 phiên bản có tên khác nhau của cùng một tệp thực thi.
Tôi nên làm như thế nào?
Tôi đã xem set_target_properties
nhưng điều này chỉ hoạt động đối với thư viện chứ không phải cho tệp thi hành.
Ví dụ tôi muốn rằng các chương trình sau đây,
int main()
{
cout << BUILDTYPE << endl;
}
nó được biên dịch trong 3 hương vị khác nhau (3 thực thi) dựa trên BUILDTYPE "define"
Ví dụ trong CMakeLists.txt
của tôi, tôi muốn chỉ định
add_executable(myAppV1 -DBUILDTYPE=1)
add_executable(myAppV2 -DBUILDTYPE=2)
add_executable(myAppV3 -DBUILDTYPE=3)
nhưng đây không phải là cú pháp đúng. Một số gợi ý? và tôi nhận được 3 tệp thi hành được in
Cảm ơn bạn! tôi phải di chuyển set_target_properties sau add_executable và sử dụng nó trong phiên bản thứ hai bạn đã viết add_executable (myAppv1 main.cpp) set_target_properties (myAppV1 TÍNH COMPILE_DEFINITIONS "BUILDTYPE = 1") nhưng KHÔNG này cách add_executable (myAppv1 main.cpp) set_target_properties (các thuộc tính myAppV1 COMPILE_DEFINITIONS "-DBUILDTYPE = 1") – linello