initial support for mingw-cross-compiling
git-svn-id: https://lmms.svn.sf.net/svnroot/lmms/trunk/lmms@1356 0778d3d1-df1d-0410-868b-ea421aaaa00d
This commit is contained in:
@@ -5,13 +5,15 @@ PROJECT(lmms)
|
||||
SET(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${CMAKE_CURRENT_SOURCE_DIR}/cmake/modules)
|
||||
SET(CMAKE_BUILD_TYPE relwithdebinfo)
|
||||
|
||||
CMAKE_POLICY(SET CMP0005 NEW)
|
||||
IF(COMMAND CMAKE_POLICY)
|
||||
CMAKE_POLICY(SET CMP0005 NEW)
|
||||
CMAKE_POLICY(SET CMP0003 NEW)
|
||||
ENDIF(COMMAND CMAKE_POLICY)
|
||||
|
||||
INCLUDE(AddFileDependencies)
|
||||
INCLUDE(CheckIncludeFiles)
|
||||
INCLUDE(FindPkgConfig)
|
||||
|
||||
|
||||
SET(VERSION_MAJOR "0")
|
||||
SET(VERSION_MINOR "4")
|
||||
SET(VERSION_PATCH "0")
|
||||
@@ -40,8 +42,18 @@ OPTION(WANT_STK "Include Stk (Synthesis Toolkit) support" ON)
|
||||
OPTION(WANT_SYSTEM_SR "Use system's libsamplerate" ON)
|
||||
OPTION(WANT_TAP "Include Tom's Audio Processing (LADSPA plugins)" ON)
|
||||
OPTION(WANT_VST "Include VST support" ON)
|
||||
OPTION(WANT_WINMM "Include WinMM MIDI support" OFF)
|
||||
OPTION(WANT_PCH "Use precompiled headers" OFF)
|
||||
|
||||
IF(LMMS_BUILD_WIN32)
|
||||
SET(WANT_ALSA OFF)
|
||||
SET(WANT_JACK OFF)
|
||||
SET(WANT_PULSEAUDIO OFF)
|
||||
SET(WANT_STK OFF)
|
||||
SET(WANT_SYSTEM_SR OFF)
|
||||
SET(WANT_WINMM ON)
|
||||
SET(LMMS_HAVE_WINMM TRUE)
|
||||
ENDIF(LMMS_BUILD_WIN32)
|
||||
|
||||
MESSAGE("PROCESSOR: ${CMAKE_SYSTEM_PROCESSOR}")
|
||||
EXEC_PROGRAM( uname ARGS "-m"OUTPUT_VARIABLE Machine )
|
||||
@@ -122,6 +134,13 @@ IF(WANT_SDL)
|
||||
SET(LMMS_HAVE_SDL TRUE)
|
||||
ENDIF(SDL_FOUND)
|
||||
ENDIF(WANT_SDL)
|
||||
IF(NOT LMMS_HAVE_SDL)
|
||||
SET(SDL_INCLUDE_DIR "")
|
||||
ELSE(NOT LMMS_HAVE_SDL)
|
||||
IF(NOT SDL_INCLUDE_DIR)
|
||||
SET(SDL_INCLUDE_DIR ${CMAKE_FIND_ROOT_PATH}/include)
|
||||
ENDIF(NOT SDL_INCLUDE_DIR)
|
||||
ENDIF(NOT LMMS_HAVE_SDL)
|
||||
|
||||
|
||||
# check for Stk
|
||||
@@ -140,10 +159,12 @@ IF(WANT_PULSEAUDIO)
|
||||
FIND_PACKAGE(PulseAudio)
|
||||
IF(PULSEAUDIO_FOUND)
|
||||
SET(LMMS_HAVE_PULSEAUDIO TRUE)
|
||||
ELSE(PULSEAUDIO_FOUND)
|
||||
SET(PULSEAUDIO_INCLUDE_DIR "")
|
||||
ENDIF(PULSEAUDIO_FOUND)
|
||||
ENDIF(WANT_PULSEAUDIO)
|
||||
IF(NOT LMMS_HAVE_PULSEAUDIO)
|
||||
SET(PULSEAUDIO_INCLUDE_DIR "")
|
||||
SET(PULSEAUDIO_LIBRARIES "")
|
||||
ENDIF(NOT LMMS_HAVE_PULSEAUDIO)
|
||||
|
||||
|
||||
# check for OGG/Vorbis-libraries
|
||||
@@ -169,10 +190,14 @@ IF(WANT_ALSA)
|
||||
SET(LMMS_HAVE_ALSA TRUE)
|
||||
ENDIF(ALSA_FOUND)
|
||||
ENDIF(WANT_ALSA)
|
||||
IF(NOT LMMS_HAVE_ALSA)
|
||||
SET(ASOUND_LIBRARY "")
|
||||
ENDIF(NOT LMMS_HAVE_ALSA)
|
||||
|
||||
|
||||
# check for JACK
|
||||
IF(WANT_JACK)
|
||||
MESSAGE(FATAL_ERROR "${WANT_JACK}")
|
||||
PKG_CHECK_MODULES(JACK jack>=0.77)
|
||||
IF(JACK_FOUND)
|
||||
SET(LMMS_HAVE_JACK TRUE)
|
||||
@@ -271,6 +296,10 @@ ADD_FILE_DEPENDENCIES(${ER_H} ${lmms_MOC_out})
|
||||
|
||||
ADD_CUSTOM_COMMAND(OUTPUT ${ER_H} COMMAND ${BIN2RES} ARGS ${lmms_EMBEDDED_RESOURCES} > ${ER_H} DEPENDS ${BIN2RES})
|
||||
|
||||
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-attributes")
|
||||
IF(NOT WIN32)
|
||||
SET(CMAKE_CURRENT_SOURCE_DIR "${CMAKE_CXX_FLAGS} -fPIC")
|
||||
ENDIF(NOT WIN32)
|
||||
|
||||
# make sub-directories
|
||||
ADD_SUBDIRECTORY(plugins)
|
||||
@@ -286,10 +315,6 @@ LINK_DIRECTORIES( ${ASOUND_LIBRARY_DIR} ${JACK_LIBRARY_DIRS} ${SAMPLERATE_LIBRAR
|
||||
LINK_LIBRARIES(${QT_LIBRARIES} ${ASOUND_LIBRARY} ${SDL_LIBRARY} ${PULSEAUDIO_LIBRARIES} ${JACK_LIBRARIES} ${OGGVORBIS_LIBRARIES} ${SAMPLERATE_LIBRARIES} ${SNDFILE_LIBRARIES})
|
||||
|
||||
ADD_EXECUTABLE(lmms ${lmms_SOURCES} ${lmms_INCLUDES} ${LIBSAMPLERATE_SOURCES} ${ER_H} ${lmms_UI_out})
|
||||
SET_TARGET_PROPERTIES(lmms PROPERTIES COMPILE_FLAGS "-D_FORTIFY_SOURCE=0")
|
||||
IF(NOT WIN32)
|
||||
SET_TARGET_PROPERTIES(lmms PROPERTIES COMPILE_FLAGS "-fPIC")
|
||||
ENDIF(NOT WIN32)
|
||||
INSTALL(TARGETS lmms RUNTIME DESTINATION bin)
|
||||
|
||||
|
||||
@@ -335,7 +360,7 @@ MESSAGE(
|
||||
"-------------------------\n"
|
||||
"* ALSA : ${LMMS_HAVE_ALSA}\n"
|
||||
"* OSS : ${LMMS_HAVE_OSS}\n"
|
||||
"* WinMM : ${LMMS_BUILD_WIN32}\n"
|
||||
"* WinMM : ${LMMS_HAVE_WINMM}\n"
|
||||
)
|
||||
|
||||
MESSAGE(
|
||||
|
||||
11
ChangeLog
11
ChangeLog
@@ -1,5 +1,16 @@
|
||||
2008-07-22 Tobias Doerffel <tobydox/at/users/dot/sourceforge/dot/net>
|
||||
|
||||
* cmake/modules/Win32Toolchain.cmake:
|
||||
* cmake/modules/BuildPlugin.cmake:
|
||||
* plugins/ladspa_effect/tap/CMakeLists.txt:
|
||||
* plugins/ladspa_effect/caps/CMakeLists.txt:
|
||||
* plugins/vst_effect/CMakeLists.txt:
|
||||
* include/audio_sdl.h:
|
||||
* src/core/midi/midi_winmm.cpp:
|
||||
* build_mingw32:
|
||||
* CMakeLists.txt:
|
||||
initial support for mingw-cross-compiling
|
||||
|
||||
* include/midi_alsa_seq.h:
|
||||
* include/midi_client.h:
|
||||
* include/midi_port.h:
|
||||
|
||||
@@ -1,4 +1,7 @@
|
||||
MINGW=/opt/mingw
|
||||
export PATH=$PATH:$MINGW/bin
|
||||
./configure --prefix=$MINGW --host=i586-mingw32 CC=$MINGW/bin/i586-mingw32-gcc CXX=$MINGW/bin/i586-mingw32-g++ DLLTOOL=$MINGW/bin/i586-mingw32-dlltool OBJDUMP=$MINGW/bin/i586-mingw32-objdump RANLIB=$MINGW/bin/i586-mingw32-ranlib AR=$MINGW/bin/i586-mingw32-ar AS=$MINGW/bin/i586-mingw32-as STRIP=$MINGW/bin/i586-mingw32-strip --with-qtdir=$MINGW --with-win32 CFLAGS="-mtune=generic -mmmx -fno-strict-aliasing" CXXFLAGS="-mtune=generic -mmmx -fno-strict-aliasing"
|
||||
#./configure --prefix=$MINGW --host=i586-mingw32 CC=$MINGW/bin/i586-mingw32-gcc CXX=$MINGW/bin/i586-mingw32-g++ DLLTOOL=$MINGW/bin/i586-mingw32-dlltool OBJDUMP=$MINGW/bin/i586-mingw32-objdump RANLIB=$MINGW/bin/i586-mingw32-ranlib AR=$MINGW/bin/i586-mingw32-ar AS=$MINGW/bin/i586-mingw32-as STRIP=$MINGW/bin/i586-mingw32-strip --with-qtdir=$MINGW --with-win32 CFLAGS="-mtune=generic -mmmx -fno-strict-aliasing" CXXFLAGS="-mtune=generic -mmmx -fno-strict-aliasing"
|
||||
#./configure --prefix=$MINGW --host=i586-mingw32 --build=i586-mingw32 CC=$MINGW/bin/i586-mingw32-gcc CXX=$MINGW/bin/i586-mingw32-g++ --with-qtdir=$MINGW --with-win32
|
||||
|
||||
cmake . -DCMAKE_TOOLCHAIN_FILE=cmake/modules/Win32Toolchain.cmake
|
||||
|
||||
|
||||
@@ -65,8 +65,13 @@ MACRO(BUILD_PLUGIN)
|
||||
FOREACH(f ${PLUGIN_SOURCES})
|
||||
ADD_FILE_DEPENDENCIES(${f} ${ER_H} ${plugin_MOC_out} ${plugin_UIC_out})
|
||||
ENDFOREACH(f)
|
||||
ADD_LIBRARY( ${PLUGIN_NAME} SHARED ${PLUGIN_SOURCES})
|
||||
INSTALL(TARGETS ${PLUGIN_NAME} LIBRARY DESTINATION ${PLUGIN_DIR})
|
||||
ADD_LIBRARY(${PLUGIN_NAME} SHARED ${PLUGIN_SOURCES})
|
||||
IF(LMMS_BUILD_LINUX)
|
||||
INSTALL(TARGETS ${PLUGIN_NAME} LIBRARY DESTINATION "${PLUGIN_DIR}")
|
||||
ENDIF(LMMS_BUILD_LINUX)
|
||||
IF(LMMS_BUILD_WIN32)
|
||||
SET_TARGET_PROPERTIES(${PLUGIN_NAME} PROPERTIES PREFIX "")
|
||||
ENDIF(LMMS_BUILD_WIN32)
|
||||
SET(ADDITIONAL_MAKE_CLEAN_FILES ${ER_H} ${plugin_MOC_out})
|
||||
ENDMACRO(BUILD_PLUGIN)
|
||||
|
||||
|
||||
35
cmake/modules/Win32Toolchain.cmake
Normal file
35
cmake/modules/Win32Toolchain.cmake
Normal file
@@ -0,0 +1,35 @@
|
||||
# this one is important
|
||||
SET(CMAKE_SYSTEM_NAME Windows)
|
||||
#this one not so much
|
||||
SET(CMAKE_SYSTEM_VERSION 1)
|
||||
|
||||
SET(CMAKE_SYSTEM_PROCESSOR i686)
|
||||
SET(CMAKE_INSTALL_PREFIX /opt/mingw)
|
||||
|
||||
SET(CC_PREFIX /opt/mingw)
|
||||
|
||||
# specify the cross compiler
|
||||
SET(CMAKE_C_COMPILER ${CC_PREFIX}/bin/i586-mingw32-gcc)
|
||||
SET(CMAKE_CXX_COMPILER ${CC_PREFIX}/bin/i586-mingw32-g++)
|
||||
|
||||
# where is the target environment
|
||||
SET(CMAKE_FIND_ROOT_PATH /opt/mingw)
|
||||
|
||||
set(QT_BINARY_DIR ${CC_PREFIX}/bin)
|
||||
set(QT_LIBRARY_DIR ${CC_PREFIX}/lib)
|
||||
set(QT_QTCORE_LIBRARY ${CC_PREFIX}/lib/libQtCore4.a)
|
||||
set(QT_INCLUDE_DIR ${CC_PREFIX}/include/qt4)
|
||||
set(QT_QTCORE_INCLUDE_DIR ${CC_PREFIX}/include/qt4/QtCore)
|
||||
set(QT_MKSPECS_DIR ${CC_PREFIX}/share/qt4/mkspecs)
|
||||
set(QT_MOC_EXECUTABLE ${QT_BINARY_DIR}/moc.exe)
|
||||
set(QT_RCC_EXECUTABLE ${QT_BINARY_DIR}/rcc.exe)
|
||||
set(QT_QMAKE_EXECUTABLE /usr/bin/qmake)
|
||||
set(QT_UIC_EXECUTABLE ${QT_BINARY_DIR}/uic.exe)
|
||||
|
||||
# search for programs in the build host directories
|
||||
SET(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)
|
||||
# for libraries and headers in the target directories
|
||||
SET(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)
|
||||
SET(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)
|
||||
|
||||
|
||||
@@ -30,8 +30,8 @@
|
||||
|
||||
#ifdef LMMS_HAVE_SDL
|
||||
|
||||
#include <SDL.h>
|
||||
#include <SDL_audio.h>
|
||||
#include <SDL/SDL.h>
|
||||
#include <SDL/SDL_audio.h>
|
||||
|
||||
#include "audio_device.h"
|
||||
|
||||
|
||||
@@ -6,8 +6,7 @@ SET_TARGET_PROPERTIES(caps PROPERTIES PREFIX "")
|
||||
SET_TARGET_PROPERTIES(caps PROPERTIES COMPILE_FLAGS "-O3 -Wno-write-strings")
|
||||
SET_TARGET_PROPERTIES(caps PROPERTIES LINK_FLAGS "${LINK_FLAGS} -shared -Wl,-no-undefined")
|
||||
IF(LMMS_BUILD_LINUX)
|
||||
SET_TARGET_PROPERTIES(caps PROPERTIES LINK_FLAGS "${LINK_FLAGS} -nostartfiles")
|
||||
SET_TARGET_PROPERTIES(caps PROPERTIES LINK_FLAGS "${LINK_FLAGS} -nostartfiles")
|
||||
INSTALL(TARGETS caps LIBRARY DESTINATION ${PLUGIN_DIR}/ladspa)
|
||||
ENDIF(LMMS_BUILD_LINUX)
|
||||
|
||||
INSTALL(TARGETS caps LIBRARY DESTINATION ${PLUGIN_DIR}/ladspa)
|
||||
|
||||
|
||||
@@ -8,9 +8,8 @@ FOREACH(_item ${PLUGIN_SOURCES})
|
||||
SET_TARGET_PROPERTIES(${_plugin} PROPERTIES COMPILE_FLAGS "-O3 -Wno-write-strings -Wall -fomit-frame-pointer -fno-strict-aliasing -fstrength-reduce -funroll-loops -ffast-math -c -fPIC -DPIC")
|
||||
SET_TARGET_PROPERTIES(${_plugin} PROPERTIES LINK_FLAGS "${LINK_FLAGS} -shared -Wl,-no-undefined -Wl,-Bsymbolic -lm")
|
||||
IF(LMMS_BUILD_LINUX)
|
||||
SET_TARGET_PROPERTIES(${_plugin} PROPERTIES LINK_FLAGS "${LINK_FLAGS} -nostartfiles")
|
||||
SET_TARGET_PROPERTIES(${_plugin} PROPERTIES LINK_FLAGS "${LINK_FLAGS} -nostartfiles")
|
||||
INSTALL(TARGETS ${_plugin} LIBRARY DESTINATION ${PLUGIN_DIR}/ladspa)
|
||||
ENDIF(LMMS_BUILD_LINUX)
|
||||
|
||||
INSTALL(TARGETS ${_plugin} LIBRARY DESTINATION ${PLUGIN_DIR}/ladspa)
|
||||
ENDFOREACH(_item ${PLUGIN_SOURCES})
|
||||
|
||||
|
||||
@@ -6,7 +6,8 @@ LINK_DIRECTORIES(../vst_base)
|
||||
LINK_LIBRARIES(vstbase)
|
||||
|
||||
BUILD_PLUGIN(vsteffect vst_effect.cpp vst_effect_controls.cpp vst_effect_control_dialog.cpp vst_subplugin_features.cpp vst_effect.h vst_effect_controls.h vst_effect_control_dialog.h vst_subplugin_features.h MOCFILES vst_effect_controls.h EMBEDDED_RESOURCES *.png)
|
||||
|
||||
SET_TARGET_PROPERTIES(vsteffect PROPERTIES COMPILE_FLAGS "-Wno-attributes")
|
||||
|
||||
ENDIF(LMMS_HAVE_VST)
|
||||
|
||||
SET_TARGET_PROPERTIES(vsteffect PROPERTIES COMPILE_FLAGS "-D_FORTIFY_SOURCE=0")
|
||||
|
||||
|
||||
@@ -414,7 +414,7 @@ void midiWinMM::setupWidget::saveSettings( void )
|
||||
}
|
||||
|
||||
|
||||
#include "midi_winmm.moc"
|
||||
#include "moc_midi_winmm.cxx"
|
||||
|
||||
|
||||
#endif
|
||||
|
||||
Reference in New Issue
Block a user