Bring us closer to working with MinGW again.
The biggest obstacle right now deals with FFMPEG. I insist on being able to utilize the git clone/submodule (5_1_0) section. I'm just struggling with the commands. As part of this commit, some linux files are restored in the compilation chain. This is for consistency with the old Makefile approach. Assistance will be needed at this point to complete MinGW support.
This commit is contained in:
@@ -0,0 +1,60 @@
|
|||||||
|
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_ROOT "${CMAKE_BINARY_DIR}/ffmpeg-prefix/src/ffmpeg-build")
|
||||||
|
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(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()
|
||||||
|
|
||||||
|
if (IS_DIRECTORY "${SM_FFMPEG_SRC_DIR}")
|
||||||
|
externalproject_add("ffmpeg"
|
||||||
|
SOURCE_DIR "${SM_FFMPEG_SRC_DIR}"
|
||||||
|
CONFIGURE_COMMAND ${FFMPEG_CONFIGURE}
|
||||||
|
BUILD_COMMAND "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://source.ffmpeg.org/ffmpeg.git" "${SM_FFMPEG_SRC_DIR}"
|
||||||
|
CONFIGURE_COMMAND "${FFMPEG_CONFIGURE}"
|
||||||
|
BUILD_COMMAND "make"
|
||||||
|
UPDATE_COMMAND ""
|
||||||
|
INSTALL_COMMAND ""
|
||||||
|
TEST_COMMAND ""
|
||||||
|
)
|
||||||
|
endif()
|
||||||
+36
-75
@@ -115,6 +115,12 @@ check_symbol_exists(size_t stdlib.h HAVE_SIZE_T_STDLIB)
|
|||||||
check_symbol_exists(size_t stdio.h HAVE_SIZE_T_STDIO)
|
check_symbol_exists(size_t stdio.h HAVE_SIZE_T_STDIO)
|
||||||
check_symbol_exists(posix_fadvise fcntl.h HAVE_POSIX_FADVISE)
|
check_symbol_exists(posix_fadvise fcntl.h HAVE_POSIX_FADVISE)
|
||||||
|
|
||||||
|
if (MINGW)
|
||||||
|
set(NEED_WINDOWS_LOADING_WINDOW TRUE)
|
||||||
|
check_symbol_exists(PBS_MARQUEE commctrl.h HAVE_PBS_MARQUEE)
|
||||||
|
check_symbol_exists(PBM_SETMARQUEE commctrl.h HAVE_PBM_SETMARQUEE)
|
||||||
|
endif()
|
||||||
|
|
||||||
# Checks to make it easier to work with 32-bit/64-bit builds if required.
|
# Checks to make it easier to work with 32-bit/64-bit builds if required.
|
||||||
include(CheckTypeSize)
|
include(CheckTypeSize)
|
||||||
check_type_size(int16_t SIZEOF_INT16_T)
|
check_type_size(int16_t SIZEOF_INT16_T)
|
||||||
@@ -215,30 +221,42 @@ endif()
|
|||||||
find_package(nasm)
|
find_package(nasm)
|
||||||
find_package(yasm)
|
find_package(yasm)
|
||||||
|
|
||||||
|
find_package(Threads)
|
||||||
|
if (${Threads_FOUND})
|
||||||
|
set(HAS_PTHREAD TRUE)
|
||||||
|
else()
|
||||||
|
set(HAS_PTHREAD FALSE)
|
||||||
|
endif()
|
||||||
|
|
||||||
if(WIN32)
|
if(WIN32)
|
||||||
set(SYSTEM_PCRE_FOUND FALSE)
|
set(SYSTEM_PCRE_FOUND FALSE)
|
||||||
find_package(DirectX REQUIRED)
|
find_package(DirectX REQUIRED)
|
||||||
|
|
||||||
# FFMPEG...it can be evil.
|
if (MINGW)
|
||||||
find_library(LIB_SWSCALE NAMES "swscale"
|
include("${SM_CMAKE_DIR}/SetupFfmpeg.cmake")
|
||||||
PATHS "${SM_EXTERN_DIR}/ffmpeg/lib" NO_DEFAULT_PATH
|
set(HAS_FFMPEG TRUE)
|
||||||
)
|
else()
|
||||||
get_filename_component(LIB_SWSCALE ${LIB_SWSCALE} NAME)
|
# FFMPEG...it can be evil.
|
||||||
|
find_library(LIB_SWSCALE NAMES "swscale"
|
||||||
|
PATHS "${SM_EXTERN_DIR}/ffmpeg/lib" NO_DEFAULT_PATH
|
||||||
|
)
|
||||||
|
get_filename_component(LIB_SWSCALE ${LIB_SWSCALE} NAME)
|
||||||
|
|
||||||
find_library(LIB_AVCODEC NAMES "avcodec"
|
find_library(LIB_AVCODEC NAMES "avcodec"
|
||||||
PATHS "${SM_EXTERN_DIR}/ffmpeg/lib" NO_DEFAULT_PATH
|
PATHS "${SM_EXTERN_DIR}/ffmpeg/lib" NO_DEFAULT_PATH
|
||||||
)
|
)
|
||||||
get_filename_component(LIB_AVCODEC ${LIB_AVCODEC} NAME)
|
get_filename_component(LIB_AVCODEC ${LIB_AVCODEC} NAME)
|
||||||
|
|
||||||
find_library(LIB_AVFORMAT NAMES "avformat"
|
find_library(LIB_AVFORMAT NAMES "avformat"
|
||||||
PATHS "${SM_EXTERN_DIR}/ffmpeg/lib" NO_DEFAULT_PATH
|
PATHS "${SM_EXTERN_DIR}/ffmpeg/lib" NO_DEFAULT_PATH
|
||||||
)
|
)
|
||||||
get_filename_component(LIB_AVFORMAT ${LIB_AVFORMAT} NAME)
|
get_filename_component(LIB_AVFORMAT ${LIB_AVFORMAT} NAME)
|
||||||
|
|
||||||
find_library(LIB_AVUTIL NAMES "avutil"
|
find_library(LIB_AVUTIL NAMES "avutil"
|
||||||
PATHS "${SM_EXTERN_DIR}/ffmpeg/lib" NO_DEFAULT_PATH
|
PATHS "${SM_EXTERN_DIR}/ffmpeg/lib" NO_DEFAULT_PATH
|
||||||
)
|
)
|
||||||
get_filename_component(LIB_AVUTIL ${LIB_AVUTIL} NAME)
|
get_filename_component(LIB_AVUTIL ${LIB_AVUTIL} NAME)
|
||||||
|
endif()
|
||||||
elseif(MACOSX)
|
elseif(MACOSX)
|
||||||
set(SYSTEM_PCRE_FOUND FALSE)
|
set(SYSTEM_PCRE_FOUND FALSE)
|
||||||
set(WITH_CRASH_HANDLER TRUE)
|
set(WITH_CRASH_HANDLER TRUE)
|
||||||
@@ -363,13 +381,6 @@ elseif(LINUX)
|
|||||||
message(STATUS "-- At least one sound library was found. Do not worry if any were not found at this stage.")
|
message(STATUS "-- At least one sound library was found. Do not worry if any were not found at this stage.")
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
find_package(Threads)
|
|
||||||
if (${Threads_FOUND})
|
|
||||||
set(HAS_PTHREAD TRUE)
|
|
||||||
else()
|
|
||||||
set(HAS_PTHREAD FALSE)
|
|
||||||
endif()
|
|
||||||
|
|
||||||
if (WITH_FFMPEG AND NOT YASM_FOUND AND NOT NASM_FOUND)
|
if (WITH_FFMPEG AND NOT YASM_FOUND AND NOT NASM_FOUND)
|
||||||
message("Neither NASM nor YASM were found. Please install at least one of them if you wish for ffmpeg support.")
|
message("Neither NASM nor YASM were found. Please install at least one of them if you wish for ffmpeg support.")
|
||||||
set(WITH_FFMPEG OFF)
|
set(WITH_FFMPEG OFF)
|
||||||
@@ -388,57 +399,7 @@ elseif(LINUX)
|
|||||||
set(HAS_FFMPEG TRUE)
|
set(HAS_FFMPEG TRUE)
|
||||||
endif()
|
endif()
|
||||||
else()
|
else()
|
||||||
set(SM_FFMPEG_VERSION "2.1.3")
|
include("${SM_CMAKE_DIR}/SetupFfmpeg.cmake")
|
||||||
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_ROOT "${CMAKE_BINARY_DIR}/ffmpeg-prefix/src/ffmpeg-build")
|
|
||||||
list(APPEND FFMPEG_CONFIGURE
|
|
||||||
"${SM_FFMPEG_SRC_DIR}/configure"
|
|
||||||
"--disable-programs"
|
|
||||||
"--disable-doc"
|
|
||||||
"--disable-avdevice"
|
|
||||||
"--disable-swresample"
|
|
||||||
"--disable-postproc"
|
|
||||||
"--disable-avfilter"
|
|
||||||
"--disable-shared"
|
|
||||||
"--enable-static"
|
|
||||||
)
|
|
||||||
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()
|
|
||||||
|
|
||||||
if (IS_DIRECTORY "${SM_FFMPEG_SRC_DIR}")
|
|
||||||
externalproject_add("ffmpeg"
|
|
||||||
SOURCE_DIR "${SM_FFMPEG_SRC_DIR}"
|
|
||||||
CONFIGURE_COMMAND ${FFMPEG_CONFIGURE}
|
|
||||||
BUILD_COMMAND "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://source.ffmpeg.org/ffmpeg.git" "${SM_FFMPEG_SRC_DIR}"
|
|
||||||
CONFIGURE_COMMAND "${FFMPEG_CONFIGURE}"
|
|
||||||
BUILD_COMMAND "make"
|
|
||||||
UPDATE_COMMAND ""
|
|
||||||
INSTALL_COMMAND ""
|
|
||||||
TEST_COMMAND ""
|
|
||||||
)
|
|
||||||
endif()
|
|
||||||
set(HAS_FFMPEG TRUE)
|
set(HAS_FFMPEG TRUE)
|
||||||
endif()
|
endif()
|
||||||
else()
|
else()
|
||||||
|
|||||||
@@ -274,6 +274,16 @@ if(NOT APPLE)
|
|||||||
list(APPEND SMDATA_ARCH_LIGHTS_HPP
|
list(APPEND SMDATA_ARCH_LIGHTS_HPP
|
||||||
"arch/Lights/LightsDriver_Export.h"
|
"arch/Lights/LightsDriver_Export.h"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
if(NOT MSVC)
|
||||||
|
list(APPEND SMDATA_ARCH_LIGHTS_SRC
|
||||||
|
"arch/Lights/LightsDriver_SextetStream.cpp"
|
||||||
|
)
|
||||||
|
list(APPEND SMDATA_ARCH_LIGHTS_SRC
|
||||||
|
"arch/Lights/LightsDriver_SextetStream.h"
|
||||||
|
)
|
||||||
|
endif()
|
||||||
|
|
||||||
if(WIN32)
|
if(WIN32)
|
||||||
list(APPEND SMDATA_ARCH_LIGHTS_SRC
|
list(APPEND SMDATA_ARCH_LIGHTS_SRC
|
||||||
"arch/Lights/LightsDriver_Win32Parallel.cpp"
|
"arch/Lights/LightsDriver_Win32Parallel.cpp"
|
||||||
@@ -341,6 +351,14 @@ if(WIN32)
|
|||||||
"arch/InputHandler/InputHandler_Win32_Para.h"
|
"arch/InputHandler/InputHandler_Win32_Para.h"
|
||||||
"arch/InputHandler/InputHandler_Win32_Pump.h"
|
"arch/InputHandler/InputHandler_Win32_Pump.h"
|
||||||
)
|
)
|
||||||
|
if (NOT MSVC)
|
||||||
|
list(APPEND SMDATA_ARCH_INPUT_SRC
|
||||||
|
"arch/InputHandler/InputHandler_SextetStream.cpp"
|
||||||
|
)
|
||||||
|
list(APPEND SMDATA_ARCH_INPUT_HPP
|
||||||
|
"arch/InputHandler/InputHandler_SextetStream.h"
|
||||||
|
)
|
||||||
|
endif()
|
||||||
elseif(APPLE)
|
elseif(APPLE)
|
||||||
list(APPEND SMDATA_ARCH_INPUT_SRC
|
list(APPEND SMDATA_ARCH_INPUT_SRC
|
||||||
"arch/InputHandler/InputHandler_MacOSX_HID.cpp"
|
"arch/InputHandler/InputHandler_MacOSX_HID.cpp"
|
||||||
@@ -355,12 +373,14 @@ else() # Unix/Linux
|
|||||||
"arch/InputHandler/InputHandler_Linux_Joystick.cpp"
|
"arch/InputHandler/InputHandler_Linux_Joystick.cpp"
|
||||||
"arch/InputHandler/InputHandler_Linux_Event.cpp"
|
"arch/InputHandler/InputHandler_Linux_Event.cpp"
|
||||||
"arch/InputHandler/InputHandler_Linux_PIUIO.cpp"
|
"arch/InputHandler/InputHandler_Linux_PIUIO.cpp"
|
||||||
|
"arch/InputHandler/InputHandler_SextetStream.cpp"
|
||||||
)
|
)
|
||||||
list(APPEND SMDATA_ARCH_INPUT_SRC
|
list(APPEND SMDATA_ARCH_INPUT_SRC
|
||||||
"arch/InputHandler/LinuxInputManager.h"
|
"arch/InputHandler/LinuxInputManager.h"
|
||||||
"arch/InputHandler/InputHandler_Linux_Joystick.h"
|
"arch/InputHandler/InputHandler_Linux_Joystick.h"
|
||||||
"arch/InputHandler/InputHandler_Linux_Event.h"
|
"arch/InputHandler/InputHandler_Linux_Event.h"
|
||||||
"arch/InputHandler/InputHandler_Linux_PIUIO.h"
|
"arch/InputHandler/InputHandler_Linux_PIUIO.h"
|
||||||
|
"arch/InputHandler/InputHandler_SextetStream.h"
|
||||||
)
|
)
|
||||||
if(WITH_TTY)
|
if(WITH_TTY)
|
||||||
list(APPEND SMDATA_ARCH_INPUT_SRC
|
list(APPEND SMDATA_ARCH_INPUT_SRC
|
||||||
|
|||||||
@@ -22,7 +22,9 @@ InputHandler_Win32_Pump::InputHandler_Win32_Pump()
|
|||||||
m_pDevice = new USBDevice[NUM_PUMPS];
|
m_pDevice = new USBDevice[NUM_PUMPS];
|
||||||
|
|
||||||
int iNumFound = 0;
|
int iNumFound = 0;
|
||||||
for( int p = 0; p < ARRAYSIZE(pump_usb_pids); ++p )
|
// TODO: Use C++1x semantics to loop through the pids.
|
||||||
|
// Hardcoding for now to keep this moving.
|
||||||
|
for( int p = 0; p < 2; ++p )
|
||||||
{
|
{
|
||||||
const int pump_usb_pid = pump_usb_pids[p];
|
const int pump_usb_pid = pump_usb_pids[p];
|
||||||
for( int i = 0; i < NUM_PUMPS; ++i )
|
for( int i = 0; i < NUM_PUMPS; ++i )
|
||||||
|
|||||||
@@ -89,8 +89,10 @@ struct tm *my_localtime_r( const time_t *timep, struct tm *result );
|
|||||||
#define localtime_r my_localtime_r
|
#define localtime_r my_localtime_r
|
||||||
struct tm *my_gmtime_r( const time_t *timep, struct tm *result );
|
struct tm *my_gmtime_r( const time_t *timep, struct tm *result );
|
||||||
#define gmtime_r my_gmtime_r
|
#define gmtime_r my_gmtime_r
|
||||||
|
#if defined(_MSC_VER)
|
||||||
void my_usleep( unsigned long usec );
|
void my_usleep( unsigned long usec );
|
||||||
#define usleep my_usleep
|
#define usleep my_usleep
|
||||||
|
#endif
|
||||||
|
|
||||||
// Missing stdint types:
|
// Missing stdint types:
|
||||||
#if !defined(__MINGW32__) // MinGW headers define these for us
|
#if !defined(__MINGW32__) // MinGW headers define these for us
|
||||||
|
|||||||
@@ -126,6 +126,24 @@ typedef long ssize_t;
|
|||||||
/* Defined to 1 if compiling with OGG support. */
|
/* Defined to 1 if compiling with OGG support. */
|
||||||
#cmakedefine HAS_OGG 1
|
#cmakedefine HAS_OGG 1
|
||||||
|
|
||||||
|
/* Defined to 1 if building on a windows system, and thus uses the windows loading window. */
|
||||||
|
#cmakedefine NEED_WINDOWS_LOADING_WINDOW 1
|
||||||
|
|
||||||
|
/* Defined to 1 if the PBS_MARQUEE symbol was found. */
|
||||||
|
#cmakedefine HAVE_PBS_MARQUEE 1
|
||||||
|
|
||||||
|
/* Defined to 1 if the PBM_SETMARQUEE symbol was found. */
|
||||||
|
#cmakedefine HAVE_PBM_SETMARQUEE 1
|
||||||
|
|
||||||
|
#if defined(NEED_WINDOWS_LOADING_WINDOW)
|
||||||
|
#if !defined(HAVE_PBS_MARQUEE)
|
||||||
|
#define PBS_MARQUEE 0x08
|
||||||
|
#endif
|
||||||
|
#if !defined(HAVE_PBM_SETMARQUEE)
|
||||||
|
#define PBM_SETMARQUEE (WM_USER+10)
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
|
||||||
#if defined(__GNUC__)
|
#if defined(__GNUC__)
|
||||||
/** @brief Define a macro to tell the compiler that a function has printf()
|
/** @brief Define a macro to tell the compiler that a function has printf()
|
||||||
* semantics, to aid warning output. */
|
* semantics, to aid warning output. */
|
||||||
|
|||||||
Reference in New Issue
Block a user