2015-05-07 16 views
5

Câu hỏi của tôi có phần tương tự với số này SO nhưng không giống nhau.CMake: Thêm các mệnh đề dòng lệnh vào dự án

Tôi tạo ra một chương trình HelloWorld như sau:

add_executable(HelloWorld ${SRC}) 

Khi tôi tạo ra một tập tin dự án (ví dụ một Visual Studio tập tin sln, hoặc XCode .xcodeproj tập tin). Tôi muốn nhấn nút chạy và vượt qua trong một số đối số dòng lệnh để HelloWorld khi nó thực hiện chương trình, như sau:

./HelloWorld --gtest_filter=Test_Cases1* 

Xem thêm SO này cho cách này được thực hiện là Visual Studio.

Có thể thực hiện việc này trong tệp CMakeList không? Nếu không, tại sao?

Trả lời

4

CMake không có hỗ trợ tích hợp cho việc này. Lý do là cài đặt từ tab Debugging thuộc tính Visual Studio Project không được lưu trữ trong tệp dự án (.vc[x]proj), nhưng trong tệp .user dành riêng cho người dùng và máy, và CMake không tạo ra các tệp này.

Bạn có thể tự viết mã trong CMake (Tôi đã làm điều đó cho khuôn khổ của chúng tôi tại nơi làm việc). Tệp chỉ là XML, vì vậy bạn có thể điền trước theo nhu cầu của mình. Cấu trúc của nó khá dễ hiểu. Các đối số dòng lệnh cho chương trình đang được sửa lỗi được lưu trữ trong thuộc tính CommandArguments bên trong một phần tử XML <DebugSettings> (được lồng trong <Configurations><Configuration>), ví dụ.

0

Không phải là mẹo của CMake. Bạn có thể thực hiện việc này để đặt mặc định args để gỡ lỗi xây dựng:

int main(int argc,char* argv[]) 
{ const char* command = argv[1]; 
    if(argc < 2) 
    {    
#ifdef _DEBUG 
     command="hello"; 
#else 
     Usage(); 
     return 1; 
#endif 
    } 

[ process command arg... ] 
Các vấn đề liên quan