2012-10-23 27 views

Trả lời

55

Bạn muốn lệnh execute_process.


Trong trường hợp của bạn, trên Windows:

execute_process(COMMAND CMD /c echo bar OUTPUT_VARIABLE FOO) 


hoặc trên Linux, chỉ cần:

execute_process(COMMAND echo bar OUTPUT_VARIABLE FOO) 


Trong trường hợp đặc biệt này, CMake cung cấp một giải pháp đa nền tảng. Bản thân CMake có thể được sử dụng để chạy các lệnh có thể được sử dụng trên tất cả các hệ thống, một trong số đó là echo. Để làm điều này, CMake phải được chuyển qua dòng lệnh arg -E. Đối với danh sách đầy đủ các lệnh như vậy, chạy cmake -E help

Bên trong một kịch bản CMake, các CMake thực thi được gọi bởi ${CMAKE_COMMAND}, vì vậy kịch bản cần phải làm:

execute_process(COMMAND ${CMAKE_COMMAND} -E echo bar OUTPUT_VARIABLE FOO) 
+4

Tuỳ theo lệnh mà bạn thực hiện, nó có thể đặt khoảng trắng theo sau thành biến. Nếu hành vi này không được mong muốn, bạn có thể sử dụng tùy chọn OUTPUT_STRIP_TRAILING_WHITESPACE làm đối số cuối cùng cho hàm 'execute_process'. – hbobenicio

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