Files
itgmania212121/CMake/SetupFfmpeg.cmake
T
TatshandColby Klein d395028bd4 Mac fixes (#1776)
* macOS build fixes (#1773)

* macOS build fixes

Add missing headers
Threads_Pthreads: do not call pthread_setname_np() on macOS as it does not do
the same as on Linux
DebugStr() -> os_log()

* Make the project build with Makefiles on macOS

* Fix getting modifier key state on Mac (#1774)

We really need to clean up all Carbon calls here (many will go away when the
project switches to SDL2 for all platforms)

* Fix Xcode build; bump minimum version of macOS (#1775)

* Build fixes for the "Unix Makefiles" generator
Pass CMAKE_BUILD_TYPE to the external projects
* Fix indent
2018-12-31 19:28:59 -08:00

92 lines
2.5 KiB
CMake

set(SM_FFMPEG_VERSION "2.1.3")
set(SM_FFMPEG_SRC_LIST "${SM_EXTERN_DIR}" "/ffmpeg-linux-" "${SM_FFMPEG_VERSION}")
sm_join("${SM_FFMPEG_SRC_LIST}" "" SM_FFMPEG_SRC_DIR)
set(SM_FFMPEG_CONFIGURE_EXE "${SM_FFMPEG_SRC_DIR}/configure")
if (MINGW)
# Borrow from http://stackoverflow.com/q/11845823
# string(SUBSTRING ${SM_FFMPEG_CONFIGURE_EXE} 0 1 FIRST_LETTER)
# string(TOLOWER ${FIRST_LETTER} FIRST_LETTER_LOW)
# string(REPLACE "${FIRST_LETTER}:" "/${FIRST_LETTER_LOW}" # SM_FFMPEG_CONFIGURE_EXE ${SM_FFMPEG_CONFIGURE_EXE})
# string(REGEX REPLACE "\\\\" "/" SM_FFMPEG_CONFIGURE_EXE "${SM_FFMPEG_CONFIGURE_EXE}")
set(SM_FFMPEG_CONFIGURE_EXE "extern/ffmpeg-linux-${SM_FFMPEG_VERSION}/configure")
endif()
list(APPEND FFMPEG_CONFIGURE
"${SM_FFMPEG_CONFIGURE_EXE}"
"--disable-programs"
"--disable-doc"
"--disable-avdevice"
"--disable-swresample"
"--disable-postproc"
"--disable-avfilter"
"--disable-shared"
"--enable-static"
)
if(CMAKE_POSITION_INDEPENDENT_CODE)
list(APPEND FFMPEG_CONFIGURE "--enable-pic")
endif()
if(MACOSX)
# TODO: Remove these two items when Mac OS X StepMania builds in 64-bit.
list(APPEND FFMPEG_CONFIGURE
"--arch=i386"
"--cc=clang -m32"
)
find_program(
FFMPEG_YASM_EXECUTABLE
yasm
PATHS /usr/bin /usr/local/bin /opt/local/bin)
list(APPEND FFMPEG_CONFIGURE
"--yasmexe=${FFMPEG_YASM_EXECUTABLE}"
)
endif()
if(WITH_GPL_LIBS)
list(APPEND FFMPEG_CONFIGURE
"--enable-gpl"
)
endif()
if (WITH_CRYSTALHD_DISABLED)
list(APPEND FFMPEG_CONFIGURE "--disable-crystalhd")
endif()
if (NOT WITH_EXTERNAL_WARNINGS)
list(APPEND FFMPEG_CONFIGURE
"--extra-cflags=-w"
)
endif()
list(APPEND SM_FFMPEG_MAKE
$(MAKE)
)
if (WITH_FFMPEG_JOBS GREATER 0)
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 "${SM_FFMPEG_MAKE}"
UPDATE_COMMAND ""
INSTALL_COMMAND ""
TEST_COMMAND ""
)
else()
# --shlibdir=$our_installdir/stepmania-$VERSION
externalproject_add("ffmpeg"
DOWNLOAD_COMMAND git clone "--branch" "n${SM_FFMPEG_VERSION}" "--depth" "1" "git://github.com/stepmania/ffmpeg.git" "${SM_FFMPEG_SRC_DIR}"
CONFIGURE_COMMAND "${FFMPEG_CONFIGURE}"
BUILD_COMMAND "${SM_FFMPEG_MAKE}"
UPDATE_COMMAND ""
INSTALL_COMMAND ""
TEST_COMMAND ""
)
endif()
externalproject_get_property("ffmpeg" BINARY_DIR)
set(SM_FFMPEG_ROOT ${BINARY_DIR})