2012-02-19 26 views
12

Tôi hơi không chắc chắn về thuật ngữ trong miền vấn đề này, đây là vấn đề khi tôi cố gắng tìm kiếm mọi thứ.cmake "make run"

Tôi đang sử dụng CMake cho quá trình xây dựng của mình. Tôi muốn thực hiện một mục tiêu Makefile như vậy mà tôi có thể sử dụng make run để chạy một quy trình nhất định (cụ thể, quy trình tôi vừa tạo với make). Tôi nhận ra rằng tôi chỉ có thể tạo một kịch bản lệnh shell, hoặc chỉ cần chạy lệnh bằng cách gõ nó ra. Nếu tôi đã viết một Makefile bản thân mình, tôi muốn làm điều này như sau:


run: 
    ./path/to/binary 

Tôi không bao giờ viết một Makefile bản thân mình, mặc dù - đó là tạo ra bởi cmake - và tôi không chắc chắn những gì để đưa vào của tôi CMakeLists.txt để làm cho nó tạo ra mục tiêu make run mong muốn.

Tôi đã tìm thấy lệnh cmake 'execute_process', nhưng điều đó dường như không phải là những gì tôi theo sau - tôi không muốn thực sự chạy bất kỳ thứ gì trong quá trình xây dựng.

tắm: Ngoài ra, tôi rất muốn có thể làm một cái gì đó như sau:


CMAKE_COMMAND_ADD_MAKEFILE_TARGET (${CMAKE_PROJECT_DIR}/binary) 

Đó là, thêm path/to/binary sử dụng một biến cmake, nếu đó là có thể.

+0

Vì vậy, có gì sai với mục tiêu bạn đã viết ở trên? –

+0

Rất tiếc, không làm rõ điều đó - Tôi không viết Makefile của mình, tôi đang sử dụng CMake. Sẽ chỉnh sửa câu hỏi cho phù hợp. – simont

Trả lời

13

Bạn đang tìm kiếm add_custom_target. Ví dụ:

add_custom_target(run 
    COMMAND binary 
    DEPENDS binary 
    WORKING_DIRECTORY ${CMAKE_PROJECT_DIR} 
) 
+0

Bạn đã thử nghiệm điều này? Tôi không thể nhận được '$ {CMAKE_PROJECT_DIR}/nhị phân' để làm việc, và tôi không chắc chắn nếu nó chỉ là tôi messing nó lên - tôi đã tìm ra cách để làm những gì tôi sau với' add_custom_target', mặc dù. – simont

+0

Xin lỗi, tôi không thử. Nó được cố định ngay bây giờ. – Simon