MuseScore/mscore/CMakeLists.txt

471 lines
16 KiB
CMake
Raw Normal View History

2012-05-26 14:49:10 +02:00
#=============================================================================
# MuseScore
# Linux Music Score Editor
# $Id:$
#
# Copyright (C) 2002-2013 by Werner Schweer and others
2012-05-26 14:49:10 +02:00
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License version 2.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
#=============================================================================
include (${PROJECT_SOURCE_DIR}/build/gch.cmake)
SET_SOURCE_FILES_PROPERTIES(revision.h PROPERTIES GENERATED TRUE)
include_directories(
${CMAKE_CURRENT_BINARY_DIR}
${PROJECT_SOURCE_DIR}
${PROJECT_SOURCE_DIR}/thirdparty
${QTSINGLEAPPLICATION_INCLUDE_DIRS}
)
2012-07-09 14:16:27 +02:00
if (SCRIPT_INTERFACE)
set (SCRIPT_FILES plugins.cpp pluginCreator.cpp qmledit.cpp)
set (SCRIPT_MOCS plugins.h pluginCreator.h qmledit.h)
set (SCRIPT_UI pluginCreator.ui)
endif (SCRIPT_INTERFACE)
2012-05-26 14:49:10 +02:00
QT4_WRAP_UI (ui_headers
2013-06-10 11:03:34 +02:00
insertmeasuresdialog.ui editinstrument.ui editstyle.ui edittempo.ui instrdialog.ui
measuresdialog.ui pagesettings.ui mixer.ui playpanel.ui prefsdialog.ui measureproperties.ui
textpalette.ui timedialog.ui symboldialog.ui shortcutcapturedialog.ui editdrumset.ui
editstaff.ui voltaproperties.ui timesigproperties.ui boxproperties.ui
2012-05-26 14:49:10 +02:00
instrwizard.ui timesigwizard.ui newwizard.ui aboutbox.ui aboutmusicxmlbox.ui
2013-06-10 11:03:34 +02:00
chordedit.ui transposedialog.ui lineproperties.ui excerptsdialog.ui stafftext.ui tupletdialog.ui
glissandoprop.ui articulation.ui metaedit.ui palette.ui slurproperties.ui select.ui
synthcontrol.ui splitstaff.ui cellproperties.ui keyedit.ui selectinstr.ui
fretdprops.ui stafftype.ui sectionbreak.ui bend.ui tremolobar.ui textproperties.ui
editpitch.ui editstringdata.ui editraster.ui mediadialog.ui textstyle.ui album.ui layer.ui
omrpanel.ui startdialog.ui masterpalette.ui pluginManager.ui harmonyedit.ui pathlistdialog.ui
2013-04-28 21:29:12 +02:00
note_groups.ui importmidi_panel.ui
2013-06-10 11:03:34 +02:00
debugger/barline.ui
debugger/harmony.ui
debugger/box.ui
debugger/keysig.ui
debugger/rest.ui
debugger/articulationbase.ui
debugger/accidental.ui
debugger/clef.ui
debugger/slursegment.ui
debugger/spanner.ui
debugger/tremolo.ui
debugger/beam.ui
debugger/lyrics.ui
debugger/linesegment.ui
debugger/textline.ui
debugger/line.ui
debugger/slurtie.ui
debugger/slur.ui
debugger/tuplet.ui
debugger/dynamic.ui
debugger/hairpin.ui
debugger/chord.ui
debugger/chordrest.ui
debugger/segment.ui
debugger/measure.ui
debugger/element.ui
debugger/debugger.ui
debugger/note.ui
debugger/page.ui
debugger/text.ui
debugger/stem.ui
debugger/system.ui
inspector/inspector_element.ui
inspector/inspector_vbox.ui
inspector/inspector_articulation.ui
inspector/inspector_spacer.ui
inspector/inspector_hbox.ui
inspector/inspector_segment.ui
inspector/inspector_beam.ui
inspector/inspector_note.ui
inspector/inspector_rest.ui
inspector/inspector_chord.ui
inspector/inspector_group_element.ui
inspector/inspector_image.ui
inspector/inspector_lasso.ui
inspector/inspector_volta.ui
inspector/inspector_ottava.ui
inspector/inspector_trill.ui
inspector/inspector_hairpin.ui
inspector/inspector_jump.ui
inspector/inspector_marker.ui
inspector/inspector_glissando.ui
inspector/inspector_clef.ui
inspector/inspector_timesig.ui
inspector/inspector_keysig.ui
inspector/inspector_barline.ui
inspector/inspector_tuplet.ui
inspector/inspector_accidental.ui
inspector/inspector_tempotext.ui
inspector/inspector_dynamic.ui
inspector/inspector_line.ui
inspector/inspector_textline.ui
2012-07-09 14:16:27 +02:00
${SCRIPT_UI}
2012-05-26 14:49:10 +02:00
)
if (OMR)
set(OMR_MOCS omrpanel.h)
endif (OMR)
2012-05-26 14:49:10 +02:00
QT4_WRAP_CPP (mocs
2013-06-10 11:03:34 +02:00
scoreview.h editinstrument.h editstyle.h edittempo.h instrdialog.h
2012-05-26 14:49:10 +02:00
musescore.h navigator.h pagesettings.h palette.h mixer.h playpanel.h
measureproperties.h seq.h textpalette.h textstyle.h
timedialog.h symboldialog.h shortcutcapturedialog.h simplebutton.h
greendotbutton.h recordbutton.h editdrumset.h editstaff.h selinstrument.h
2013-02-25 18:15:28 +01:00
voltaproperties.h timesigproperties.h boxproperties.h newwizard.h
transposedialog.h chordedit.h lineproperties.h
2012-05-26 14:49:10 +02:00
excerptsdialog.h stafftextproperties.h glissandoproperties.h
2013-05-31 17:48:47 +02:00
articulationprop.h metaedit.h magbox.h
textprop.h textproperties.h tupletdialog.h
2012-05-26 14:49:10 +02:00
slurproperties.h selectdialog.h synthcontrol.h drumroll.h pianoroll.h
piano.h ruler.h file.h
pianoview.h drumview.h splitstaff.h scoretab.h keyedit.h keycanvas.h harmonyedit.h
harmonycanvas.h updatechecker.h fretproperties.h fretcanvas.h editstafftype.h
2013-03-27 17:52:26 +01:00
prefsdialog.h sectionbreakprop.h bendproperties.h
2012-05-26 14:49:10 +02:00
bendcanvas.h tremolobarprop.h tremolobarcanvas.h
drumtools.h texteditor.h texttools.h edittools.h pianotools.h editpitch.h
2013-02-18 16:39:53 +01:00
editstringdata.h editraster.h mediadialog.h chordview.h album.h layer.h
2013-06-10 11:03:34 +02:00
webpage.h
inspector/inspector.h inspector/inspectorBase.h inspector/inspectorBeam.h masterpalette.h
inspector/inspectorGroupElement.h inspector/inspectorImage.h waveview.h helpBrowser.h
inspector/inspectorLasso.h inspector/inspectorVolta.h inspector/inspectorOttava.h
inspector/inspectorTrill.h
inspector/inspectorHairpin.h qmlplugin.h palettebox.h workspace.h pluginManager.h
inspector/inspectorJump.h inspector/inspectorMarker.h inspector/inspectorGlissando.h
inspector/inspectorNote.h
paletteBoxButton.h pathlistdialog.h exampleview.h noteGroups.h inspector/inspectorTextLine.h
2013-04-28 21:29:12 +02:00
importmidi_panel.h importmidi_operations.h
2013-05-17 20:11:36 +02:00
importmidi_opmodel.h importmidi_trmodel.h importmidi_opdelegate.h
importmidi_meter.h importmidi_operation.h
2013-06-10 11:03:34 +02:00
debugger/debugger.h
2012-05-26 14:49:10 +02:00
${OMR_MOCS}
2012-07-09 14:16:27 +02:00
${SCRIPT_MOCS}
2012-05-26 14:49:10 +02:00
)
if (APPLE)
QT4_ADD_RESOURCES (qrc_files musescore-apple.qrc)
else (APPLE)
QT4_ADD_RESOURCES (qrc_files musescore.qrc)
endif (APPLE)
set (AUDIO "")
if (MINGW)
set (resource_file ${PROJECT_BINARY_DIR}/resfile.o)
else (MINGW)
if (USE_ALSA)
set (AUDIO ${AUDIO} alsa.cpp mididriver.cpp)
endif (USE_ALSA)
endif (MINGW)
if (USE_PORTAUDIO)
set (AUDIO ${AUDIO} pa.cpp)
endif (USE_PORTAUDIO)
if (USE_PULSEAUDIO)
set (AUDIO ${AUDIO} pulseaudio.cpp)
endif (USE_PULSEAUDIO)
if (USE_PORTMIDI)
set (AUDIO ${AUDIO} pm.cpp)
endif (USE_PORTMIDI)
if (USE_JACK)
set (AUDIO ${AUDIO} jackaudio.cpp jackweakapi.cpp)
endif (USE_JACK)
if (APPLE)
2013-04-28 21:29:12 +02:00
set (ExecutableName mscore MACOSX_BUNDLE)
set (MACOSX_BUNDLE_INFO_STRING MuseScore prerelease for Mac OSX)
set (MACOSX_BUNDLE_ICON_FILE mscore.icns)
set (MACOSX_BUNDLE_GUI_IDENTIFIER net.sourceforge.mscore)
set (MACOSX_BUNDLE_LONG_VERSION_STRING ${MUSESCORE_VERSION_FULL})
set (MACOSX_BUNDLE_BUNDLE_NAME MuseScore)
set (MACOSX_BUNDLE_SHORT_VERSION_STRING ${MUSESCORE_VERSION})
set (MACOSX_BUNDLE_BUNDLE_VERSION ${MUSESCORE_VERSION_FULL})
set (MACOSX_BUNDLE_COPYRIGHT musescore.org)
2012-05-26 14:49:10 +02:00
else (APPLE)
2013-04-28 21:29:12 +02:00
set (ExecutableName mscore)
2012-05-26 14:49:10 +02:00
endif (APPLE)
if (OMR)
set(OMR_FILES omrpanel.cpp)
endif (OMR)
if (APPLE)
2013-04-28 21:29:12 +02:00
file(GLOB_RECURSE INCS "*.h")
else (APPLE)
2013-04-28 21:29:12 +02:00
set(INCS "")
endif (APPLE)
2012-05-26 14:49:10 +02:00
add_executable ( ${ExecutableName}
${qrc_files}
${ui_headers}
${mocs}
${PROJECT_BINARY_DIR}/all.h
${PCH}
${resource_file}
${INCS}
2012-05-26 14:49:10 +02:00
actions.cpp scoreview.cpp editinstrument.cpp editstyle.cpp
2013-01-11 18:10:18 +01:00
edittempo.cpp icons.cpp importbww.cpp
2013-06-10 11:03:34 +02:00
instrdialog.cpp
debugger/debugger.cpp
menus.cpp importmidi.cpp
2012-05-26 14:49:10 +02:00
musescore.cpp navigator.cpp pagesettings.cpp palette.cpp
mixer.cpp playpanel.cpp preferences.cpp measureproperties.cpp
seq.cpp boxproperties.cpp textpalette.cpp
timedialog.cpp symboldialog.cpp shortcutcapturedialog.cpp
simplebutton.cpp musedata.cpp exportly.cpp
editdrumset.cpp editstaff.cpp voltaproperties.cpp
timesigproperties.cpp newwizard.cpp transposedialog.cpp
2013-02-26 15:50:36 +01:00
chordedit.cpp excerptsdialog.cpp metaedit.cpp magbox.cpp
2013-05-31 17:48:47 +02:00
capella.cpp capxml.cpp exportaudio.cpp palettebox.cpp
textproperties.cpp slurproperties.cpp
2012-05-26 14:49:10 +02:00
synthcontrol.cpp drumroll.cpp pianoroll.cpp piano.cpp
pianoview.cpp drumview.cpp scoretab.cpp keyedit.cpp harmonyedit.cpp
updatechecker.cpp importove.cpp ove.cpp ruler.cpp
importgtp.cpp fotomode.cpp drumtools.cpp
selinstrument.cpp texteditor.cpp editstafftype.cpp texttools.cpp edittools.cpp
editpitch.cpp editstringdata.cpp editraster.cpp pianotools.cpp mediadialog.cpp
2013-02-18 16:39:53 +01:00
workspace.cpp exportmp3.cpp chordview.cpp
album.cpp webpage.cpp textstyle.cpp
2012-05-26 14:49:10 +02:00
lineproperties.cpp stafftextproperties.cpp splitstaff.cpp
2013-03-11 14:15:42 +01:00
tupletdialog.cpp glissandoproperties.cpp
articulationprop.cpp textprop.cpp
2013-03-27 17:52:26 +01:00
fretproperties.cpp sectionbreakprop.cpp
2012-05-26 14:49:10 +02:00
bendproperties.cpp tremolobarprop.cpp file.cpp keyb.cpp osc.cpp
2013-02-25 18:15:28 +01:00
layer.cpp selectdialog.cpp propertymenu.cpp shortcut.cpp bb.cpp
2013-06-10 11:03:34 +02:00
inspector/inspector.cpp dragelement.cpp svggenerator.cpp
inspector/inspectorBase.cpp inspector/inspectorBeam.cpp masterpalette.cpp
inspector/inspectorGroupElement.cpp dragdrop.cpp inspector/inspectorImage.cpp
waveview.cpp helpBrowser.cpp inspector/inspectorLasso.cpp
editelement.cpp inspector/inspectorVolta.cpp inspector/inspectorOttava.cpp
inspector/inspectorTrill.cpp
inspector/inspectorHairpin.cpp qmlplugin.cpp editlyrics.cpp
2013-02-16 16:04:08 +01:00
musicxmlsupport.cpp exportxml.cpp importxml.cpp importxmlfirstpass.cpp
2013-06-10 11:03:34 +02:00
savePositions.cpp pluginManager.cpp inspector/inspectorJump.cpp inspector/inspectorMarker.cpp
inspector/inspectorGlissando.cpp inspector/inspectorNote.cpp paletteBoxButton.cpp
driver.cpp exportmidi.cpp noteGroups.cpp
2013-06-10 11:03:34 +02:00
pathlistdialog.cpp exampleview.cpp inspector/inspectorTextLine.cpp
2013-05-14 15:32:51 +02:00
importmidi_panel.cpp importmidi_operations.cpp miconengine.cpp
2013-05-17 20:11:36 +02:00
importmidi_opmodel.cpp importmidi_trmodel.cpp importmidi_opdelegate.cpp
2013-05-26 01:19:09 +02:00
importmidi_meter.cpp
2012-05-26 14:49:10 +02:00
${OMR_FILES}
${AUDIO}
2012-07-09 14:16:27 +02:00
${SCRIPT_FILES}
musescoreCore.h
driver.h
2012-05-26 14:49:10 +02:00
)
target_link_libraries(mscore
libmscore
awl
mstyle
diff_match_patch
bww
rtf2html
${QTSINGLEAPPLICATION_LIBRARIES}
synthesizer
2013-04-15 10:38:16 +02:00
midi
fluid
effects
vorbisfile
)
if (ZERBERUS)
target_link_libraries(mscore zerberus synthesizer)
endif ()
if (AEOLUS)
target_link_libraries(mscore aeolus)
endif ()
if (SOUNDFONT3)
target_link_libraries(mscore ${VORBIS_LIB} ${OGG_LIB})
endif ()
if (HAS_AUDIOFILE)
target_link_libraries(mscore audiofile ${SNDFILE_LIB})
endif (HAS_AUDIOFILE)
2012-05-26 14:49:10 +02:00
if (APPLE)
set_target_properties (mscore
PROPERTIES
MACOSX_BUNDLE_INFO_PLIST ${PROJECT_SOURCE_DIR}/build/MacOSXBundleInfo.plist.in)
2012-07-28 09:47:21 +02:00
#enable dSym generation
#set_target_properties (mscore
# PROPERTIES
# XCODE_ATTRIBUTE_DEBUG_INFORMATION_FORMAT "dwarf-with-dsym")
2012-05-26 14:49:10 +02:00
endif(APPLE)
if (OSC)
target_link_libraries(mscore ofqf)
endif (OSC)
if (MINGW)
add_custom_command(
OUTPUT ${PROJECT_BINARY_DIR}/resfile.o
COMMAND ${QT_WRC_EXECUTABLE} -i mscore.rc -o ${PROJECT_BINARY_DIR}/mscore.res
COMMAND ${QT_WINE_EXECUTABLE} /home/ws/.wine/drive_c/MingW/bin/windres.exe ${PROJECT_BINARY_DIR}/mscore.res -o ${PROJECT_BINARY_DIR}/resfile.o
DEPENDS ${PROJECT_SOURCE_DIR}/mscore/data/mscore.rc
WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}/mscore/data
)
set_source_files_properties(
${PROJECT_BINARY_DIR}/resfile.o
PROPERTIES generated true
)
# Windows: add -mconsole to LINK_FLAGS to get a console window for debug output
if(CMAKE_BUILD_TYPE MATCHES "DEBUG")
set_target_properties( mscore
PROPERTIES
2013-03-14 16:00:06 +01:00
COMPILE_FLAGS "${PCH_INCLUDE} -g -Wall -Wextra -Winvalid-pch ${QT_DEFINITIONS} -DQT_SVG_LIB -DQT_GUI_LIB -DQT_XML_LIB -DQT_CORE_LIB"
2012-05-26 14:49:10 +02:00
LINK_FLAGS "${PROJECT_BINARY_DIR}/resfile.o -mwindows -mconsole -L ${CROSSQT}/lib"
)
else(CMAKE_BUILD_TYPE MATCHES "DEBUG")
set_target_properties( mscore
PROPERTIES
2013-03-14 16:00:06 +01:00
COMPILE_FLAGS "${PCH_INCLUDE} -Wall -Wextra -Winvalid-pch ${QT_DEFINITIONS} -DQT_SVG_LIB -DQT_GUI_LIB -DQT_XML_LIB -DQT_CORE_LIB"
2012-05-26 14:49:10 +02:00
LINK_FLAGS "-Wl,-S ${PROJECT_BINARY_DIR}/resfile.o -mwindows -L ${CROSSQT}/lib"
)
endif(CMAKE_BUILD_TYPE MATCHES "DEBUG")
target_link_libraries(mscore
portaudio
portmidi
winmm
)
if (OMR)
target_link_libraries(mscore omr fitz freetype jbig2dec jpeg openjpeg)
2012-05-26 14:49:10 +02:00
if (OCR)
target_link_libraries(mscore tesseract_api)
endif (OCR)
endif (OMR)
target_link_libraries(mscore ${QT_mingw_LIBRARIES})
install( TARGETS mscore RUNTIME DESTINATION bin )
install_files ( /bin .dll
${CROSS}/bin/libgcc_s_sjlj-1.dll
${CROSS}/bin/libstdc++-6.dll
${CROSS}/bin/libwinpthread-1.dll
2012-05-26 14:49:10 +02:00
${CROSS}/lib/portaudio.dll
${CROSS}/lib/libsndfile-1.dll
${CROSS}/lib/libogg.dll
${CROSS}/lib/libvorbis.dll
${CROSS}/lib/libvorbisfile.dll
${CROSSQT}/bin/QtCore4.dll
${CROSSQT}/bin/QtGui4.dll
${CROSSQT}/bin/QtXml4.dll
${CROSSQT}/bin/QtSvg4.dll
${CROSSQT}/bin/QtNetwork4.dll
${CROSSQT}/bin/QtWebKit4.dll
${CROSSQT}/bin/phonon4.dll
${CROSSQT}/bin/QtXmlPatterns4.dll
2012-07-09 17:31:15 +02:00
${CROSSQT}/bin/QtDeclarative4.dll
${CROSSQT}/bin/QtScript4.dll
${CROSSQT}/bin/QtSql4.dll
2012-05-26 14:49:10 +02:00
)
install_files ( /bin/iconengines .dll
${CROSSQT}/plugins/iconengines/qsvgicon4.dll
)
install_files ( /bin/imageformats .dll
${CROSSQT}/plugins/imageformats/qjpeg4.dll
${CROSSQT}/plugins/imageformats/qmng4.dll
${CROSSQT}/plugins/imageformats/qsvg4.dll
${CROSSQT}/plugins/imageformats/qtiff4.dll
)
else (MINGW)
target_link_libraries(mscore
${ALSA_LIB}
${QT_LIBRARIES}
z
dl
pthread
)
if (USE_PORTAUDIO)
target_link_libraries(mscore ${PORTAUDIO_LIB})
endif (USE_PORTAUDIO)
if (USE_PULSEAUDIO)
target_link_libraries(mscore ${PULSEAUDIO_LIBRARY})
endif (USE_PULSEAUDIO)
set_target_properties (
mscore
PROPERTIES
2013-03-14 16:00:06 +01:00
COMPILE_FLAGS "${PCH_INCLUDE} -g -Wall -Wno-overloaded-virtual -Winvalid-pch"
2012-05-31 16:24:35 +02:00
LINK_FLAGS "-L${QT_LIBRARY_DIR}"
2012-05-26 14:49:10 +02:00
)
if (OMR)
target_link_libraries(mscore omr fitz fontconfig freetype jbig2dec jpeg openjpeg)
2012-05-26 14:49:10 +02:00
if (OCR)
target_link_libraries(mscore tesseract_api)
endif (OCR)
endif (OMR)
if (APPLE)
if (USE_PORTMIDI)
target_link_libraries(mscore portmidi)
endif (USE_PORTMIDI)
target_link_libraries(mscore ${OsxFrameworks})
else (APPLE)
target_link_libraries(mscore rt)
endif (APPLE)
# gold does not use indirect shared libraries for symbol resolution, Linux only
2013-03-13 18:55:42 +01:00
if (NOT APPLE)
2012-05-26 14:49:10 +02:00
if(USE_JACK)
target_link_libraries(mscore dl)
endif(USE_JACK)
target_link_libraries(mscore rt)
2013-03-13 18:55:42 +01:00
endif (NOT APPLE)
2012-05-26 14:49:10 +02:00
if (APPLE)
2013-03-13 18:55:42 +01:00
set_target_properties(mscore
PROPERTIES
LINK_FLAGS "-stdlib=libc++"
)
2013-03-14 16:00:06 +01:00
xcode_pch(mscore all)
2012-05-26 14:49:10 +02:00
install (TARGETS mscore BUNDLE DESTINATION ${CMAKE_INSTALL_PREFIX})
install (FILES data/mscore.icns DESTINATION ${Mscore_SHARE_NAME}${Mscore_INSTALL_NAME})
install (FILES data/musescoreDocument.icns DESTINATION ${Mscore_SHARE_NAME}${Mscore_INSTALL_NAME})
else (APPLE)
install( TARGETS mscore RUNTIME DESTINATION bin )
install( FILES data/mscore.png DESTINATION share/pixmaps)
endif (APPLE)
endif (MINGW)
if (APPLE)
install (FILES
../fonts/gonville-20.otf
../fonts/mscore-20.otf
../fonts/MuseJazz.ttf
../fonts/FreeSerifMscore.ttf
../fonts/FreeSans.ttf
../fonts/mscoreTab.ttf
2012-05-26 14:49:10 +02:00
../fonts/mscore-BC.ttf
DESTINATION ${Mscore_SHARE_NAME}${Mscore_INSTALL_NAME}fonts
)
endif (APPLE)
ADD_DEPENDENCIES(${ExecutableName} mops1)
ADD_DEPENDENCIES(${ExecutableName} mops2)