From db08b2f27188bc6629f55e61bb7daf33a5af2b0a Mon Sep 17 00:00:00 2001 From: Clement Champetier Date: Wed, 6 May 2015 18:17:57 +0200 Subject: [PATCH 1/2] CMake: the install rule does not depend on all * "make install" does not imply "make all install". * Update Travis to build all the project, and install. * CMake install with 'Optional': Specify that it is not an error if the file to be installed does not exist. --- .travis.yml | 3 ++- CMakeLists.txt | 3 +++ src/CMakeLists.txt | 11 ++++++----- 3 files changed, 11 insertions(+), 6 deletions(-) diff --git a/.travis.yml b/.travis.yml index 4ce8383e..eb5b6eb5 100644 --- a/.travis.yml +++ b/.travis.yml @@ -37,7 +37,8 @@ script: - mkdir -p ${AVTRANSCODER_BUILD} - cd ${AVTRANSCODER_BUILD} - cmake .. -DCMAKE_INSTALL_PREFIX=${AVTRANSCODER_INSTALL} -DCMAKE_PREFIX_PATH=${DEPENDENCY_INSTALL} -DCMAKE_BUILD_TYPE=Release -DAVTRANSCODER_PYTHON_VERSION_OF_BINDING=2.7 -DAVTRANSCODER_COVERAGE=True - - make -j${CI_NODE_TOTAL} install + - make -j${CI_NODE_TOTAL} + - make install # launch tests - if [ ${DEPENDENCY_MODE} = "ffmpeg" ]; then ./../tools/travis.python.nosetests.sh; fi diff --git a/CMakeLists.txt b/CMakeLists.txt index aecf6b5c..21ed897e 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -19,6 +19,9 @@ add_definitions(-DAVTRANSCODER_DEFAULT_AVPROFILES="${CMAKE_INSTALL_PREFIX}/share # Diplay commands being ran by CMake set(CMAKE_VERBOSE_MAKEFILE OFF) +# The install rule does not depend on all, i.e. everything will not be built before installing +set(CMAKE_SKIP_INSTALL_ALL_DEPENDENCY TRUE) + # CPP flags on debug / release mode if(MSVC) set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} /MTd") diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index d0af291e..1bfb01f0 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -49,8 +49,8 @@ install( PATTERN "*.hpp" PATTERN "*.i" ) -install(TARGETS avtranscoder-static DESTINATION lib/) -install(TARGETS avtranscoder-shared DESTINATION lib/) +install(TARGETS avtranscoder-static DESTINATION lib/ OPTIONAL) +install(TARGETS avtranscoder-shared DESTINATION lib/ OPTIONAL) ### Install AvTranscoder ressource install( @@ -110,9 +110,10 @@ if(SWIG_FOUND) install( FILES ${AVTRANSCODER_PYTHON_BINDING_FILE} ${AVTRANSCODER_PYTHON_INIT_FILE} DESTINATION ${AVTRANSCODER_PYTHON_MODULE_OUTPUT_DIR} + OPTIONAL ) # Install python lib and __init__.py files - install(TARGETS ${SWIG_MODULE_avtranscoder-py_REAL_NAME} DESTINATION "lib/python${PYTHONLIBS_VERSION_STRING}/site-packages/pyAvTranscoder/") + install(TARGETS ${SWIG_MODULE_avtranscoder-py_REAL_NAME} DESTINATION "lib/python${PYTHONLIBS_VERSION_STRING}/site-packages/pyAvTranscoder/" OPTIONAL) install(CODE "file(WRITE ${CMAKE_INSTALL_PREFIX}/${AVTRANSCODER_PYTHON_MODULE_OUTPUT_DIR}/__init__.py)") else() message("PYTHON not found, will not build python binding.") @@ -166,8 +167,8 @@ if(SWIG_FOUND) ) # Install java lib and jar files - install(TARGETS ${SWIG_MODULE_avtranscoder-java_REAL_NAME} DESTINATION "lib/java") - install(FILES ${AVTRANSCODER_JAR_PATH}/${AVTRANSCODER_JAR_NAME} DESTINATION "share/java/") + install(TARGETS ${SWIG_MODULE_avtranscoder-java_REAL_NAME} DESTINATION "lib/java" OPTIONAL) + install(FILES ${AVTRANSCODER_JAR_PATH}/${AVTRANSCODER_JAR_NAME} DESTINATION "share/java/" OPTIONAL) else() message("JAVA not found, will not build java binding.") endif() From daeeefcbac1ffc01417207cc32b85bb8e331f420 Mon Sep 17 00:00:00 2001 From: Clement Champetier Date: Thu, 4 Jun 2015 12:25:32 +0200 Subject: [PATCH 2/2] c++ apps: declare targets as optional --- app/avInfo/CMakeLists.txt | 1 + app/avMeta/CMakeLists.txt | 1 + app/avPlay/CMakeLists.txt | 1 + app/avProcessor/CMakeLists.txt | 1 + 4 files changed, 4 insertions(+) diff --git a/app/avInfo/CMakeLists.txt b/app/avInfo/CMakeLists.txt index bbbabc86..7d1a1e7d 100644 --- a/app/avInfo/CMakeLists.txt +++ b/app/avInfo/CMakeLists.txt @@ -20,6 +20,7 @@ install( FILES ${BINARY_FILES} PERMISSIONS OWNER_EXECUTE OWNER_WRITE OWNER_READ GROUP_EXECUTE GROUP_READ WORLD_READ WORLD_EXECUTE DESTINATION "bin/" + OPTIONAL ) install( diff --git a/app/avMeta/CMakeLists.txt b/app/avMeta/CMakeLists.txt index bbb739b0..b2c3e19d 100644 --- a/app/avMeta/CMakeLists.txt +++ b/app/avMeta/CMakeLists.txt @@ -20,6 +20,7 @@ install( FILES ${BINARY_FILES} PERMISSIONS OWNER_EXECUTE OWNER_WRITE OWNER_READ GROUP_EXECUTE GROUP_READ WORLD_READ WORLD_EXECUTE DESTINATION "bin/" + OPTIONAL ) install( diff --git a/app/avPlay/CMakeLists.txt b/app/avPlay/CMakeLists.txt index 4b7bb1c0..f9aff95e 100644 --- a/app/avPlay/CMakeLists.txt +++ b/app/avPlay/CMakeLists.txt @@ -42,6 +42,7 @@ install( FILES ${BINARY_FILES} PERMISSIONS OWNER_EXECUTE OWNER_WRITE OWNER_READ GROUP_EXECUTE GROUP_READ WORLD_READ WORLD_EXECUTE DESTINATION "bin/" + OPTIONAL ) install( diff --git a/app/avProcessor/CMakeLists.txt b/app/avProcessor/CMakeLists.txt index c31d56ed..871d2609 100644 --- a/app/avProcessor/CMakeLists.txt +++ b/app/avProcessor/CMakeLists.txt @@ -20,6 +20,7 @@ install( FILES ${BINARY_FILES} PERMISSIONS OWNER_EXECUTE OWNER_WRITE OWNER_READ GROUP_EXECUTE GROUP_READ WORLD_READ WORLD_EXECUTE DESTINATION "bin/" + OPTIONAL ) install(