Используя Cmake, просто сделайте ./genMakefiles && make -j4 - PullRequest
0 голосов
/ 06 мая 2018

Я пытаюсь интегрировать сборку CMake на https://github.com/rgaufman/live555

Он использует традиционный ./genMakefiles && make -j4, поэтому мне просто нужно создать CMakeLists.txt, который делает это, верно?

Я знаю, что правильным способом было бы добавить все файлы cpp и собрать все, но это не мой проект, и я не собираюсь его поддерживать, поэтому лучшим способом для этого случая будет просто интегрировать, как я предлагаю

Вот мой прототип:

cmake_minimum_required(VERSION 3.9)
project(live555)

ADD_CUSTOM_COMMAND(
    OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/live555
    COMMAND ./genMakefiles linux
    COMMENT "=================== Generating makefiles for linux"
    COMMAND make -j4
    COMMENT "=================== make..."
)

Я не понял, для чего OUTPUT. Разве OUTPUT не продиктован make -j4? Также я сделал cmake . && make, смотрите вывод:

lz@vm:~/JSCam/src/jscam/live555$ cmake .
-- Configuring done
-- Generating done
-- Build files have been written to: /home/lz/JSCam/src/jscam/live555
lz@vm:~/JSCam/src/jscam/live555$ make

Я также не вижу комментарии, которые я добавил, и файлы не создаются.

1 Ответ

0 голосов
/ 06 мая 2018

В CMake, если вам нужно создать какой-то другой проект, который вы «не собираетесь поддерживать», ExternalProject_Add обычно является хорошим выбором:

Функция ExternalProject_Add создает пользовательскую цель для загрузки, обновления / исправления, настройки, сборки, установки и тестирования шагов внешнего проекта

Его использование довольно просто:

include(ExternalProject) # Include definition of 'ExternalProject_Add' function

ExternalProject_Add(live555 # Name of the target. Could be any
    # Setup source directory
    SOURCE_DIR <path-to-directory-with-external-project>
    # Setup build directory. Here it is the same as source one.
    BUILD_IN_SOURCE 1
    # Configuration step
    CONFIGURE_COMMAND ./genMakefiles linux
    # Build step. It is actually `make`, but in a wise manner.
    BUILD_COMMAND ${CMAKE_MAKE_COMMAND}
    # Disable install step
    INSTALL_COMMAND ""
    )
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...