From d0df75205fbe6c10dbf20147f859aadbe469c54a Mon Sep 17 00:00:00 2001 From: Jason Felds Date: Sun, 25 Oct 2015 07:07:48 -0400 Subject: [PATCH 1/2] Allow customizing the number of jobs for ffmpeg. Yes, it is now possible to use a different number of jobs for ffmpeg and stepmania proper. --- .travis.yml | 10 +++++----- CMake/DefineOptions.cmake | 3 +++ CMake/SetupFfmpeg.cmake | 11 +++++++++-- 3 files changed, 17 insertions(+), 7 deletions(-) diff --git a/.travis.yml b/.travis.yml index 3db259496e..9eacde102a 100644 --- a/.travis.yml +++ b/.travis.yml @@ -9,7 +9,7 @@ notifications: matrix: include: - - env: CXX_COMPILER=clang++-3.6 CC_COMPILER=clang-3.6 BUILD_TYPE=Release WITH_FFMPEG=OFF + env: CXX_COMPILER=clang++-3.6 CC_COMPILER=clang-3.6 BUILD_TYPE=Release WITH_FFMPEG=OFF WITH_FFMPEG_JOBS=1 compiler: clang addons: &clang36 apt: @@ -33,12 +33,12 @@ matrix: - libglew-dev - - env: CXX_COMPILER=clang++-3.6 CC_COMPILER=clang-3.6 BUILD_TYPE=Release WITH_FFMPEG=ON + env: CXX_COMPILER=clang++-3.6 CC_COMPILER=clang-3.6 BUILD_TYPE=Release WITH_FFMPEG=ON WITH_FFMPEG_JOBS=2 compiler: clang addons: *clang36 - - env: CXX_COMPILER=g++-5 CC_COMPILER=gcc-5 BUILD_TYPE=Release WITH_FFMPEG=OFF + env: CXX_COMPILER=g++-5 CC_COMPILER=gcc-5 BUILD_TYPE=Release WITH_FFMPEG=OFF WITH_FFMPEG_JOBS=1 compiler: gcc addons: &gcc5 apt: @@ -68,7 +68,7 @@ install: - mkdir ${DEPS_DIR} - cd ${DEPS_DIR} # Use the binary for cmake instead of building it now. - - export CMAKE_URL=http://www.cmake.org/files/v3.3/cmake-3.3.1-Linux-x86_64.tar.gz + - export CMAKE_URL=http://www.cmake.org/files/v3.3/cmake-3.3.2-Linux-x86_64.tar.gz - mkdir cmake - wget --quiet -O - ${CMAKE_URL} | tar --strip-components=1 -xz -C cmake - export PATH=${PWD}/cmake/bin:${PATH} @@ -76,7 +76,7 @@ install: before_script: - cd ${TRAVIS_BUILD_DIR} - cd Build - - cmake .. -DCMAKE_CXX_COMPILER=${CXX_COMPILER} -DCMAKE_C_COMPILER=${CC_COMPILER} -DCMAKE_BUILD_TYPE=${BUILD_TYPE} -DWITH_FFMPEG=${WITH_FFMPEG} + - cmake .. -DCMAKE_CXX_COMPILER=${CXX_COMPILER} -DCMAKE_C_COMPILER=${CC_COMPILER} -DCMAKE_BUILD_TYPE=${BUILD_TYPE} -DWITH_FFMPEG=${WITH_FFMPEG} -DWITH_FFMPEG_JOBS=${WITH_FFMPEG_JOBS} script: - make -j2 diff --git a/CMake/DefineOptions.cmake b/CMake/DefineOptions.cmake index 5610a6eec2..5d5b6daf86 100644 --- a/CMake/DefineOptions.cmake +++ b/CMake/DefineOptions.cmake @@ -39,7 +39,10 @@ option(WITH_MP3 "Build with MP3 Support." ON) option(WITH_OGG "Build with OGG/Vorbis Support." ON) if(NOT MSVC) + # Turn this option off to disable using FFMEPG. option(WITH_FFMPEG "Build with FFMPEG." ON) + # Change this number to utilize a different number of jobs for building FFMPEG. + option(WITH_FFMPEG_JOBS "Build FFMPEG with this many jobs." 2) endif() if(WIN32) diff --git a/CMake/SetupFfmpeg.cmake b/CMake/SetupFfmpeg.cmake index 75ffe77780..b700b6753a 100644 --- a/CMake/SetupFfmpeg.cmake +++ b/CMake/SetupFfmpeg.cmake @@ -46,11 +46,18 @@ if (NOT WITH_EXTERNAL_WARNINGS) ) endif() +list(APPEND SM_FFMPEG_MAKE + "make" +) +if (WITH_FFMPEG_JOBS GREATER 1) + list(APPEND SM_FFMPEG_MAKE "-j${WITH_FFMPEG_JOBS}") +endif() + if (IS_DIRECTORY "${SM_FFMPEG_SRC_DIR}") externalproject_add("ffmpeg" SOURCE_DIR "${SM_FFMPEG_SRC_DIR}" CONFIGURE_COMMAND ${FFMPEG_CONFIGURE} - BUILD_COMMAND "make" + BUILD_COMMAND "${SM_FFMPEG_MAKE}" UPDATE_COMMAND "" INSTALL_COMMAND "" TEST_COMMAND "" @@ -60,7 +67,7 @@ else() externalproject_add("ffmpeg" DOWNLOAD_COMMAND git clone "--branch" "n${SM_FFMPEG_VERSION}" "--depth" "1" "git://source.ffmpeg.org/ffmpeg.git" "${SM_FFMPEG_SRC_DIR}" CONFIGURE_COMMAND "${FFMPEG_CONFIGURE}" - BUILD_COMMAND "make" + BUILD_COMMAND "${SM_FFMPEG_MAKE}" UPDATE_COMMAND "" INSTALL_COMMAND "" TEST_COMMAND "" From 131e3264b76a803a728c82ac2135c07ccec1250e Mon Sep 17 00:00:00 2001 From: Jason Felds Date: Sun, 25 Oct 2015 07:13:31 -0400 Subject: [PATCH 2/2] Alright Travis, DON'T use the cores. --- .travis.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index 9eacde102a..2c938cc2a9 100644 --- a/.travis.yml +++ b/.travis.yml @@ -33,7 +33,7 @@ matrix: - libglew-dev - - env: CXX_COMPILER=clang++-3.6 CC_COMPILER=clang-3.6 BUILD_TYPE=Release WITH_FFMPEG=ON WITH_FFMPEG_JOBS=2 + env: CXX_COMPILER=clang++-3.6 CC_COMPILER=clang-3.6 BUILD_TYPE=Release WITH_FFMPEG=ON WITH_FFMPEG_JOBS=1 compiler: clang addons: *clang36