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:
Tobias Doerffel
2008-07-22 14:42:34 +00:00
parent c238f579c2
commit 53abd65d2e
10 changed files with 101 additions and 23 deletions

View File

@@ -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(

View File

@@ -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:

View File

@@ -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

View File

@@ -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)

View 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)

View File

@@ -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"

View File

@@ -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)

View File

@@ -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})

View File

@@ -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")

View File

@@ -414,7 +414,7 @@ void midiWinMM::setupWidget::saveSettings( void )
}
#include "midi_winmm.moc"
#include "moc_midi_winmm.cxx"
#endif