From 3114ccea26a17c93cd79fdfa84504b4bdebc8fa7 Mon Sep 17 00:00:00 2001 From: Tres Finocchiaro Date: Sat, 25 Jul 2015 11:35:30 -0400 Subject: [PATCH] Cleanup root directory Cleans up the root directory of the GitHub source tree and starts to separate platform-specific installing and packaging logic from the master CMakeLists.txt. Closes #2201 --- .gitmodules | 0 .travis/linux.win32.script.sh | 2 +- .travis/linux.win64.script.sh | 2 +- CMakeLists.txt | 107 ++++------------- INSTALL.Qt5 | 12 -- INSTALL => INSTALL.txt | 15 +++ COPYING => LICENSE.txt | 0 README | 110 ------------------ TODO | 32 ----- cmake/CMakeLists.txt | 27 +++++ cmake/apple/CMakeLists.txt | 24 ++++ {data => cmake/apple}/dmg_branding.png | Bin .../apple/install_apple.sh.in | 8 +- {data => cmake/apple}/lmms.icns | Bin {data => cmake/apple}/lmms.plist.in | 0 .../apple/package_apple.sh.in | 2 +- {data => cmake/apple}/project.icns | Bin build_mingw32 => cmake/build_mingw32.sh | 0 build_mingw64 => cmake/build_mingw64.sh | 0 cmake/linux/CMakeLists.txt | 4 + {data => cmake/linux}/lmms | 0 {data => cmake/linux}/lmms.desktop | 0 {data => cmake/linux}/lmms.png | Bin lmms.spec.in => cmake/linux/lmms.spec.in | 0 {data => cmake/linux}/lmms.xml | 0 cmake/nsis/CMakeLists.txt | 36 ++++++ {data => cmake/nsis}/lmms.ico | Bin cmake/nsis/lmms.rc.in | 26 +++++ {data => cmake/nsis}/nsis_branding.bmp | Bin cmake/nsis/zynaddsubfx.rc.in | 26 +++++ configure | 6 - data/CMakeLists.txt | 17 --- data/scripts/CMakeLists.txt | 13 --- AUTHORS => doc/AUTHORS | 0 lmms.1 => doc/lmms.1 | 0 lmms.rc.in | 26 ----- src/CMakeLists.txt | 5 +- lmmsconfig.h.in => src/lmmsconfig.h.in | 0 lmmsversion.h.in => src/lmmsversion.h.in | 0 39 files changed, 193 insertions(+), 307 deletions(-) delete mode 100644 .gitmodules delete mode 100644 INSTALL.Qt5 rename INSTALL => INSTALL.txt (78%) rename COPYING => LICENSE.txt (100%) delete mode 100644 README delete mode 100644 TODO create mode 100644 cmake/CMakeLists.txt create mode 100644 cmake/apple/CMakeLists.txt rename {data => cmake/apple}/dmg_branding.png (100%) rename data/scripts/create_apple_bundle.sh.in => cmake/apple/install_apple.sh.in (95%) rename {data => cmake/apple}/lmms.icns (100%) rename {data => cmake/apple}/lmms.plist.in (100%) rename data/scripts/create_apple_dmg.sh.in => cmake/apple/package_apple.sh.in (98%) rename {data => cmake/apple}/project.icns (100%) rename build_mingw32 => cmake/build_mingw32.sh (100%) rename build_mingw64 => cmake/build_mingw64.sh (100%) create mode 100644 cmake/linux/CMakeLists.txt rename {data => cmake/linux}/lmms (100%) rename {data => cmake/linux}/lmms.desktop (100%) rename {data => cmake/linux}/lmms.png (100%) rename lmms.spec.in => cmake/linux/lmms.spec.in (100%) rename {data => cmake/linux}/lmms.xml (100%) create mode 100644 cmake/nsis/CMakeLists.txt rename {data => cmake/nsis}/lmms.ico (100%) create mode 100644 cmake/nsis/lmms.rc.in rename {data => cmake/nsis}/nsis_branding.bmp (100%) create mode 100644 cmake/nsis/zynaddsubfx.rc.in delete mode 100755 configure delete mode 100644 data/scripts/CMakeLists.txt rename AUTHORS => doc/AUTHORS (100%) rename lmms.1 => doc/lmms.1 (100%) delete mode 100644 lmms.rc.in rename lmmsconfig.h.in => src/lmmsconfig.h.in (100%) rename lmmsversion.h.in => src/lmmsversion.h.in (100%) diff --git a/.gitmodules b/.gitmodules deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/.travis/linux.win32.script.sh b/.travis/linux.win32.script.sh index b0743d295a3..2101024a28d 100644 --- a/.travis/linux.win32.script.sh +++ b/.travis/linux.win32.script.sh @@ -1,2 +1,2 @@ export CMAKE_OPTS="-DUSE_WERROR=ON" -../build_mingw32 || ../build_mingw32 +../cmake/build_mingw32.sh || ../cmake/build_mingw32.sh diff --git a/.travis/linux.win64.script.sh b/.travis/linux.win64.script.sh index ba79da8cad9..5bb99d6e5fa 100644 --- a/.travis/linux.win64.script.sh +++ b/.travis/linux.win64.script.sh @@ -1,2 +1,2 @@ export CMAKE_OPTS="-DUSE_WERROR=ON" -../build_mingw64 || ../build_mingw64 +../cmake/build_mingw64.sh || ../cmake/build_mingw64.sh diff --git a/CMakeLists.txt b/CMakeLists.txt index c430dba8d8f..e701f725adb 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -13,13 +13,27 @@ INCLUDE(AddFileDependencies) INCLUDE(CheckIncludeFiles) INCLUDE(FindPkgConfig) -SET(VERSION_MAJOR "1") -SET(VERSION_MINOR "1") -SET(VERSION_PATCH "3") -#SET(VERSION_SUFFIX "") -SET(VERSION "${VERSION_MAJOR}.${VERSION_MINOR}.${VERSION_PATCH}") +STRING(TOUPPER "${CMAKE_PROJECT_NAME}" PROJECT_NAME_UCASE) + +# Timestamp available since cmake 2.8.11 +IF(CMAKE_VERSION VERSION_LESS "2.8.11") + SET(PROJECT_YEAR "2015") +ELSE() + STRING(TIMESTAMP PROJECT_YEAR "%Y") +ENDIF() + +SET(PROJECT_AUTHOR "LMMS Developers") +SET(PROJECT_URL "http://lmms.io") +SET(PROJECT_EMAIL "lmms-devel@lists.sourceforge.net") +SET(PROJECT_DESCRIPTION "${PROJECT_NAME_UCASE} - Free music production software") +SET(PROJECT_COPYRIGHT "${PROJECT_AUTHOR}, 2008-${PROJECT_YEAR}") +SET(VERSION_MAJOR "1") +SET(VERSION_MINOR "1") +SET(VERSION_PATCH "3") +#SET(VERSION_SUFFIX "") +SET(VERSION "${VERSION_MAJOR}.${VERSION_MINOR}.${VERSION_PATCH}") IF(VERSION_SUFFIX) - SET(VERSION "${VERSION}-${VERSION_SUFFIX}") + SET(VERSION "${VERSION}-${VERSION_SUFFIX}") ENDIF(VERSION_SUFFIX) INCLUDE(DetectMachine) @@ -363,12 +377,6 @@ ENDIF(LMMS_BUILD_WIN32) # check for libsamplerate PKG_CHECK_MODULES(SAMPLERATE REQUIRED samplerate>=0.1.8) - -CONFIGURE_FILE("${CMAKE_SOURCE_DIR}/lmmsconfig.h.in" "${CMAKE_BINARY_DIR}/lmmsconfig.h") -CONFIGURE_FILE("${CMAKE_SOURCE_DIR}/lmmsversion.h.in" "${CMAKE_BINARY_DIR}/lmmsversion.h") -CONFIGURE_FILE("${CMAKE_SOURCE_DIR}/lmms.rc.in" "${CMAKE_BINARY_DIR}/lmms.rc") -CONFIGURE_FILE("${CMAKE_SOURCE_DIR}/plugins/zynaddsubfx/zynaddsubfx.rc.in" "${CMAKE_BINARY_DIR}/plugins/zynaddsubfx/zynaddsubfx.rc") - # set compiler flags SET(WERROR_FLAGS "-Wall -Werror=unused-function -Wno-sign-compare -Wno-strict-overflow") OPTION(USE_WERROR "Add -werror to the build flags. Stops the build on warnings" OFF) @@ -426,19 +434,6 @@ ENDIF(WIN32 OR WIN64) # we somehow have to make LMMS-binary depend on MOC-files ADD_FILE_DEPENDENCIES("${CMAKE_BINARY_DIR}/lmmsconfig.h") -# set up apple vars before traversing into data/scripts -SET(MACOSX_BUNDLE_ICON_FILE "lmms.icns") -SET(MACOSX_BUNDLE_GUI_IDENTIFIER "LMMS") -SET(MACOSX_BUNDLE_LONG_VERSION_STRING "${VERSION}") -SET(MACOSX_BUNDLE_BUNDLE_NAME "LMMS") -SET(MACOSX_BUNDLE_SHORT_VERSION_STRING "${VERSION}") -SET(MACOSX_BUNDLE_BUNDLE_VERSION "${VERSION}") -SET(MACOSX_BUNDLE_COPYRIGHT "Tobias Doerffel, 2008-2010") -SET(MACOSX_BUNDLE_MIMETYPE "application/x-lmms-project") -SET(MACOSX_BUNDLE_MIMETYPE_ICON "project.icns") -SET(MACOSX_BUNDLE_MIMETYPE_ID "net.sourceforge.lmms") -SET(MACOSX_BUNDLE_PROJECT_URL "http://lmms.io") - IF(WIN32) SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-attributes") ELSE(WIN32) @@ -446,6 +441,7 @@ ELSE(WIN32) ENDIF(WIN32) # make sub-directories +ADD_SUBDIRECTORY(cmake) ADD_SUBDIRECTORY(src) ADD_SUBDIRECTORY(plugins) ADD_SUBDIRECTORY(tests) @@ -453,8 +449,8 @@ ADD_SUBDIRECTORY(data) ADD_SUBDIRECTORY(doc) ADD_CUSTOM_COMMAND(OUTPUT "${CMAKE_BINARY_DIR}/lmms.1.gz" - COMMAND gzip -c "\"${CMAKE_SOURCE_DIR}/lmms.1\"" > "\"${CMAKE_BINARY_DIR}/lmms.1.gz\"" - DEPENDS "${CMAKE_SOURCE_DIR}/lmms.1" + COMMAND gzip -c "\"${CMAKE_SOURCE_DIR}/doc/lmms.1\"" > "\"${CMAKE_BINARY_DIR}/lmms.1.gz\"" + DEPENDS "${CMAKE_SOURCE_DIR}/doc/lmms.1" COMMENT "Generating lmms.1.gz") ADD_CUSTOM_TARGET(manpage ALL @@ -496,7 +492,7 @@ ADD_CUSTOM_TARGET(dist COMMAND make clean COMMAND rm -rf "${TMP}" COMMAND mkdir -p "${TMP}" - COMMAND cp AUTHORS build_mingw32 build_mingw64 CMakeLists.txt configure COPYING INSTALL lmms.1 lmms.rc.in lmms.spec.in lmmsconfig.h.in lmmsversion.h.in README TODO "${TMP}" + COMMAND cp CMakeLists.txt LICENSE.txt INSTALL.txt README.md "${TMP}" COMMAND cp -r buildtools cmake data doc include plugins src "${TMP}" COMMAND rm -rf `find "${TMP}" -name cmake_install.cmake` `find "${TMP}" -name Makefile` `find "${TMP}" -type d -name CMakeFiles` "${TMP}/CMakeCache.txt" COMMAND tar cjf lmms-${VERSION}-src.tar.bz2 "${TMP}" @@ -565,59 +561,4 @@ MESSAGE( "\n\n") INCLUDE(InstallRequiredSystemLibraries) -SET(CPACK_PACKAGE_DESCRIPTION_SUMMARY "LMMS - easy music production for everyone!") -SET(CPACK_PACKAGE_VENDOR "LMMS Developers") -IF(LMMS_BUILD_APPLE) - CONFIGURE_FILE("${CMAKE_SOURCE_DIR}/README" "${CMAKE_BINARY_DIR}/README.txt" COPYONLY) - CONFIGURE_FILE("${CMAKE_SOURCE_DIR}/COPYING" "${CMAKE_BINARY_DIR}/COPYING.txt" COPYONLY) - SET(CPACK_PACKAGE_DESCRIPTION_FILE "${CMAKE_BINARY_DIR}/README.txt") - SET(CPACK_RESOURCE_FILE_LICENSE "${CMAKE_BINARY_DIR}/COPYING.txt") -ELSE(LMMS_BUILD_APPLE) - SET(CPACK_PACKAGE_DESCRIPTION_FILE "${CMAKE_SOURCE_DIR}/README") - SET(CPACK_RESOURCE_FILE_LICENSE "${CMAKE_SOURCE_DIR}/COPYING") -ENDIF(LMMS_BUILD_APPLE) - -SET(CPACK_PACKAGE_VERSION_MAJOR "${VERSION_MAJOR}") -SET(CPACK_PACKAGE_VERSION_MINOR "${VERSION_MINOR}") -SET(CPACK_PACKAGE_VERSION_PATCH "${VERSION_PATCH}") -IF(VERSION_SUFFIX) - SET(CPACK_PACKAGE_VERSION_PATCH "${VERSION_PATCH}-${VERSION_SUFFIX}") -ENDIF(VERSION_SUFFIX) -SET(CPACK_PACKAGE_INSTALL_DIRECTORY "LMMS") -IF(WIN32) - SET(CPACK_PACKAGE_ICON "${CMAKE_SOURCE_DIR}/data/nsis_branding.bmp") - SET(CPACK_NSIS_MUI_ICON "${CMAKE_SOURCE_DIR}/data/lmms.ico") - SET(CPACK_NSIS_INSTALLED_ICON_NAME "lmms.exe") - SET(CPACK_NSIS_DISPLAY_NAME "LMMS ${VERSION}") - SET(CPACK_NSIS_HELP_LINK "http://lmms.io") - SET(CPACK_NSIS_URL_INFO_ABOUT "http://lmms.io") - SET(CPACK_NSIS_CONTACT "lmms-devel@lists.sourceforge.net") - SET(CPACK_PACKAGE_EXECUTABLES "lmms.exe;LMMS") - SET(CPACK_NSIS_MENU_LINKS "lmms.exe;LMMS") - SET(CPACK_NSIS_DEFINES "!include ${CMAKE_SOURCE_DIR}/cmake/nsis/FileAssociation.nsh") - SET(CPACK_PACKAGE_FILE_NAME "lmms-${VERSION}-win32") - SET(CPACK_NSIS_EXTRA_INSTALL_COMMANDS " - \\\${registerExtension} \\\"$INSTDIR\\\\lmms.exe\\\" \\\".mmp\\\" \\\"LMMS Project\\\" - \\\${registerExtension} \\\"$INSTDIR\\\\lmms.exe\\\" \\\".mmpz\\\" \\\"LMMS Project (compressed)\\\" - ") - SET(CPACK_NSIS_EXTRA_UNINSTALL_COMMANDS " - \\\${unregisterExtension} \\\".mmp\\\" \\\"LMMS Project\\\" - \\\${unregisterExtension} \\\".mmpz\\\" \\\"LMMS Project (compressed)\\\" - DeleteRegKey HKCR \\\"LMMS Project\\\" - DeleteRegKey HKCR \\\"LMMS Project (compressed)\\\" - ") -ELSE(WIN32) - SET(CPACK_STRIP_FILES "bin/lmms;${PLUGIN_DIR}/*.so") - SET(CPACK_PACKAGE_EXECUTABLES "lmms" "LMMS binary") -ENDIF(WIN32) - -IF(WIN64) - SET(CPACK_PACKAGE_FILE_NAME "lmms-${VERSION}-win64") - SET(CPACK_NSIS_DEFINES "${CPACK_NSIS_DEFINES} - InstallDir \\\"\\\$PROGRAMFILES64\\\\${CPACK_PACKAGE_INSTALL_DIRECTORY}\\\"") -ENDIF(WIN64) - -SET(CPACK_SOURCE_GENERATOR "TBZ2") -SET(CPACK_SOURCE_PACKAGE_FILE_NAME "lmms-${VERSION}") -INCLUDE(CPack) diff --git a/INSTALL.Qt5 b/INSTALL.Qt5 deleted file mode 100644 index e2f12a23b14..00000000000 --- a/INSTALL.Qt5 +++ /dev/null @@ -1,12 +0,0 @@ -First of all please note that CMake >= 2.8.11 is required for building with -Qt5 support. In order to build LMMS with Qt5, add the following flag when -invoking cmake: - --DWANT_QT5=ON - -If your Qt5 installation does not reside in standard installation paths, -additionally pass e.g. - --DCMAKE_PREFIX_PATH=/opt/qt53/ - - diff --git a/INSTALL b/INSTALL.txt similarity index 78% rename from INSTALL rename to INSTALL.txt index 29cfd59b618..1b4ad19c755 100644 --- a/INSTALL +++ b/INSTALL.txt @@ -31,3 +31,18 @@ If you want to supply an install prefix to cmake, add the flag: Where can be /usr, /usr/local, /opt, etc. The default is /usr/local. + + +Building with QT5 + +First of all please note that CMake >= 2.8.11 is required for building with +Qt5 support. In order to build LMMS with Qt5, add the following flag when +invoking cmake: + +-DWANT_QT5=ON + +If your Qt5 installation does not reside in standard installation paths, +additionally pass e.g. + +-DCMAKE_PREFIX_PATH=/opt/qt53/ + diff --git a/COPYING b/LICENSE.txt similarity index 100% rename from COPYING rename to LICENSE.txt diff --git a/README b/README deleted file mode 100644 index 990719f9a84..00000000000 --- a/README +++ /dev/null @@ -1,110 +0,0 @@ -LMMS 1.1.0 -=========== - -Copyright (c) 2004-2015 by LMMS developers - - -This program is free software; you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by the -Free Software Foundation; either version 2 of the License, or (at your option) -any later version. - -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., -51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. - - - -What is LMMS? --------------- - -LMMS is a free cross-platform alternative to commercial programs like FL Studio -(R), which allow you to produce music with your computer. This includes the -creation of melodies and beats, the synthesis and mixing of sounds, and -arranging of samples. You can have fun with your MIDI-keyboard and much more; -all in a user-friendly and modern interface. - - -Features ---------- - - * Song-Editor for composing songs - * A Beat+Bassline-Editor for creating beats and basslines - * An easy-to-use Piano-Roll for editing patterns and melodies - * An FX mixer with 64 FX channels and arbitrary number of effects allow unlimited mixing possibilities - * Many powerful instrument and effect-plugins out of the box - * Full user-defined track-based automation and computer-controlled automation sources - * Compatible with many standards such as SoundFont2, VST(i), LADSPA, GUS Patches, and full MIDI support - * Import of MIDI and FLP (Fruityloops(R) Project) files - - -Requirements ------------- - -The most important requirement is for sure a fast computer, so don't try to get -LMMS working on a pentium I with 60 MHz... ;-) Therefore you should have at -least 500 MHz, but for really enjoying LMMS less than 1 GHz makes no sense... - - -Required libraries: - -- Qt >= 4.3.0 with devel-files (4.4.x recommended) - -Optional, but strongly recommended: -- JACK with devel-files -- libvorbis & libogg with devel-files -- libalsa with devel-files -- SDL with devel-files -- libsamplerate >= 0.1.7 with devel-files -- libsndfile with devel-files -- WINE + WINE-devel-files -- stk, libstk + libstk-dev -- libfluidsynth with devel files -- fftw3 with devel-files -- libfltk1.3 with devel-files (needed by ZynAddSubFx) - -For compiling you should have an up to date GCC with g++. - -If you have problems with compiling or running LMMS, find any bug or have -suggestions and so on, please feel free to e-mail me (for mail-address see -below)! - - - -Building ---------- - -See INSTALL for information on how to build LMMS. - - - - -Join LMMS-development ----------------------- - -If you are interested in LMMS, its programming, artwork, testing, writing -demo songs, (and improving this README...) or something like that, -you're welcome to participate in the development of LMMS! - -The project homepage of LMMS, mailing lists and a list of things you can do -can be found at - -http://lmms.io/ - - -Details on development can be found in the Wiki: - -https://github.com/LMMS/lmms/wiki - - -Before coding a new big feature, please ALWAYS file an issue at -https://github.com/LMMS/lmms/issues/new for your idea and suggestions about your -feature and about the intended implementation or post to the LMMS developers -mailing list (lmms-devel@lists.sourceforge.net) and wait for replies! -Maybe there are different ideas, improvements, hints or maybe your feature is -not welcome/needed at the moment. diff --git a/TODO b/TODO deleted file mode 100644 index 795a1876bf4..00000000000 --- a/TODO +++ /dev/null @@ -1,32 +0,0 @@ -Version 0.4.x -============= - -- save tco-settings in trackContentWidget::saveSettings() etc. instead of - track::... -- resample sample-track-tcos when exporting at different samplerate -- message to user when importing unsupported MIDI-file (track-count = 0) -- piano roll: mouse cursor isn't updated correctly in selection mode - (from resizing note edit area) -- when you add vestige, have it automatically pop the find VST plugin dialog -- try to make vestige-plugin-dlls relative -- select all MIDI devices by default when you bring up the "connect to controller" - window and wait for first event - then uncheck all other MIDI devices that no - events were detected from -- load asdlol.mmpz. if you render it without playing it, or if you play it - the first time, you hear unwanted artifacts. (solution: apply automation - before playing) -- autosave every 30s (configurable!) and offer recovery at startup after crash -- speed up painting of sampleTCO -- do not process effects when playing frozen patterns -- copy-pasted automation patterns have to be manually linked back to - their knob for some reason -- improve TrackLabelButton: split 80%-20% (80%=name, 20%=button showing a popup - menu with track operations, make the midi input a top-level menu item) -- when you click and drag a mixer bar, it doesn't click and drag, it sets - absolutely. this is annoying - - -See TODO file in master branch and/or the TODO list in the Wiki for details -regarding the development series. - - diff --git a/cmake/CMakeLists.txt b/cmake/CMakeLists.txt new file mode 100644 index 00000000000..1a3a1ec3da8 --- /dev/null +++ b/cmake/CMakeLists.txt @@ -0,0 +1,27 @@ +SET(CPACK_PACKAGE_DESCRIPTION_SUMMARY "${PROJECT_DESCRIPTION}") +SET(CPACK_PACKAGE_VENDOR "${PROJECT_AUTHOR}") +SET(CPACK_PACKAGE_DESCRIPTION_FILE "${CMAKE_SOURCE_DIR}/README.md") +SET(CPACK_RESOURCE_FILE_LICENSE "${CMAKE_SOURCE_DIR}/LICENSE.txt") +SET(CPACK_PACKAGE_VERSION_MAJOR "${VERSION_MAJOR}") +SET(CPACK_PACKAGE_VERSION_MINOR "${VERSION_MINOR}") +SET(CPACK_PACKAGE_VERSION_PATCH "${VERSION_PATCH}") +SET(CPACK_PACKAGE_INSTALL_DIRECTORY "${PROJECT_NAME_UCASE}") +SET(CPACK_SOURCE_GENERATOR "TBZ2") +SET(CPACK_SOURCE_PACKAGE_FILE_NAME "${CMAKE_PROJECT_NAME}-${VERSION}") +IF(VERSION_SUFFIX) + SET(CPACK_PACKAGE_VERSION_PATCH "${VERSION_PATCH}-${VERSION_SUFFIX}") +ENDIF() +IF(NOT DEFINED WIN32) + SET(CPACK_STRIP_FILES "bin/${CMAKE_PROJECT_NAME};${PLUGIN_DIR}/*.so") + SET(CPACK_PACKAGE_EXECUTABLES "${CMAKE_PROJECT_NAME}" "${PROJECT_NAME_UCASE} binary") +ENDIF() + +IF(LMMS_BUILD_WIN32) + ADD_SUBDIRECTORY(nsis) +ELSEIF(LMMS_BUILD_APPLE) + ADD_SUBDIRECTORY(apple) +ELSE() + ADD_SUBDIRECTORY(linux) +ENDIF() + +INCLUDE(CPack) diff --git a/cmake/apple/CMakeLists.txt b/cmake/apple/CMakeLists.txt new file mode 100644 index 00000000000..edd97febafa --- /dev/null +++ b/cmake/apple/CMakeLists.txt @@ -0,0 +1,24 @@ +SET(MACOSX_BUNDLE_ICON_FILE "lmms.icns") +SET(MACOSX_BUNDLE_GUI_IDENTIFIER "${PROJECT_NAME_UCASE}") +SET(MACOSX_BUNDLE_LONG_VERSION_STRING "${VERSION}") +SET(MACOSX_BUNDLE_BUNDLE_NAME "${PROJECT_NAME_UCASE}") +SET(MACOSX_BUNDLE_SHORT_VERSION_STRING "${VERSION}") +SET(MACOSX_BUNDLE_BUNDLE_VERSION "${VERSION}") +SET(MACOSX_BUNDLE_COPYRIGHT "${PROJECT_COPYRIGHT}") +SET(MACOSX_BUNDLE_MIMETYPE "application/x-lmms-project") +SET(MACOSX_BUNDLE_MIMETYPE_ICON "project.icns") +SET(MACOSX_BUNDLE_MIMETYPE_ID "io.lmms") +SET(MACOSX_BUNDLE_PROJECT_URL "${PROJECT_URL}") + +CONFIGURE_FILE("lmms.plist.in" "${CMAKE_INSTALL_PREFIX}/Info.plist") +CONFIGURE_FILE("install_apple.sh.in" "${CMAKE_BINARY_DIR}/install_apple.sh" @ONLY) +CONFIGURE_FILE("package_apple.sh.in" "${CMAKE_BINARY_DIR}/package_apple.sh" @ONLY) + +# Add execute permissions to install script +EXECUTE_PROCESS(COMMAND chmod u+x ${CMAKE_BINARY_DIR}/install_apple.sh) +INSTALL(CODE "EXECUTE_PROCESS(COMMAND ${CMAKE_BINARY_DIR}/install_apple.sh)") + +# TODO: Add PACKAGE target using package_apple_dmg.sh + + + diff --git a/data/dmg_branding.png b/cmake/apple/dmg_branding.png similarity index 100% rename from data/dmg_branding.png rename to cmake/apple/dmg_branding.png diff --git a/data/scripts/create_apple_bundle.sh.in b/cmake/apple/install_apple.sh.in similarity index 95% rename from data/scripts/create_apple_bundle.sh.in rename to cmake/apple/install_apple.sh.in index 8b335cb0d38..1ea1c8e4ad8 100644 --- a/data/scripts/create_apple_bundle.sh.in +++ b/cmake/apple/install_apple.sh.in @@ -1,5 +1,5 @@ #!/bin/bash -#title :create_applet_installer.sh +#title :install_apple.sh #description :Creates Apple ".app" bundle for LMMS #author :Tres Finocchiaro #date :20140504 @@ -32,8 +32,8 @@ APP=${HOME}/Desktop/LMMS.app LIBREADLINE=${MACPORTS}/lib/libreadline.6.2.dylib # The DMG packager script location -DMG_SCRIPT_SRC=${CMAKE_BUILD}/create_apple_dmg.sh -DMG_SCRIPT_DST=${HOME}/Desktop/create_apple_dmg.sh +DMG_SCRIPT_SRC=${CMAKE_BUILD}/package_apple.sh +DMG_SCRIPT_DST=${HOME}/Desktop/package_apple.sh #========================================================================================= @@ -111,7 +111,7 @@ _executables="${_executables} -executable=${APP}/Contents/Frameworks/libZynAddSu macdeployqt ${APP} $_executables # OS X Specific Artwork -cp ${CMAKE_SRC}/data/*.icns ${APP}/Contents/Resources/ +cp ${CMAKE_SRC}/cmake/apple/*.icns ${APP}/Contents/Resources/ # Done. Ready to build DMG echo -e "\nFinished.\n\nYou may run LMMS from the Desktop." diff --git a/data/lmms.icns b/cmake/apple/lmms.icns similarity index 100% rename from data/lmms.icns rename to cmake/apple/lmms.icns diff --git a/data/lmms.plist.in b/cmake/apple/lmms.plist.in similarity index 100% rename from data/lmms.plist.in rename to cmake/apple/lmms.plist.in diff --git a/data/scripts/create_apple_dmg.sh.in b/cmake/apple/package_apple.sh.in similarity index 98% rename from data/scripts/create_apple_dmg.sh.in rename to cmake/apple/package_apple.sh.in index 508b455da30..e3f3c2b713f 100644 --- a/data/scripts/create_apple_dmg.sh.in +++ b/cmake/apple/package_apple.sh.in @@ -13,7 +13,7 @@ fi APP_NAME="@MACOSX_BUNDLE_BUNDLE_NAME@" VERSION="@MACOSX_BUNDLE_LONG_VERSION_STRING@" DMG_BACKGROUND_IMG="dmg_branding.png" -cp "@CMAKE_SOURCE_DIR@/data/${DMG_BACKGROUND_IMG}" . +cp "@CMAKE_SOURCE_DIR@/cmake/apple/${DMG_BACKGROUND_IMG}" . # you should not need to change these OS_VER=`sw_vers -productVersion|cut -d"." -f1-2` diff --git a/data/project.icns b/cmake/apple/project.icns similarity index 100% rename from data/project.icns rename to cmake/apple/project.icns diff --git a/build_mingw32 b/cmake/build_mingw32.sh similarity index 100% rename from build_mingw32 rename to cmake/build_mingw32.sh diff --git a/build_mingw64 b/cmake/build_mingw64.sh similarity index 100% rename from build_mingw64 rename to cmake/build_mingw64.sh diff --git a/cmake/linux/CMakeLists.txt b/cmake/linux/CMakeLists.txt new file mode 100644 index 00000000000..78a7c541ab5 --- /dev/null +++ b/cmake/linux/CMakeLists.txt @@ -0,0 +1,4 @@ +INSTALL(FILES lmms.png DESTINATION "${DATA_DIR}/pixmaps") +INSTALL(FILES lmms DESTINATION "${DATA_DIR}/menu") +INSTALL(FILES lmms.desktop DESTINATION "${DATA_DIR}/applications") +INSTALL(FILES lmms.xml DESTINATION "${DATA_DIR}/mime/packages") diff --git a/data/lmms b/cmake/linux/lmms similarity index 100% rename from data/lmms rename to cmake/linux/lmms diff --git a/data/lmms.desktop b/cmake/linux/lmms.desktop similarity index 100% rename from data/lmms.desktop rename to cmake/linux/lmms.desktop diff --git a/data/lmms.png b/cmake/linux/lmms.png similarity index 100% rename from data/lmms.png rename to cmake/linux/lmms.png diff --git a/lmms.spec.in b/cmake/linux/lmms.spec.in similarity index 100% rename from lmms.spec.in rename to cmake/linux/lmms.spec.in diff --git a/data/lmms.xml b/cmake/linux/lmms.xml similarity index 100% rename from data/lmms.xml rename to cmake/linux/lmms.xml diff --git a/cmake/nsis/CMakeLists.txt b/cmake/nsis/CMakeLists.txt new file mode 100644 index 00000000000..c0c14c4fa69 --- /dev/null +++ b/cmake/nsis/CMakeLists.txt @@ -0,0 +1,36 @@ +SET(CPACK_PACKAGE_ICON "${CMAKE_SOURCE_DIR}/cmake/nsis/nsis_branding.bmp" PARENT_SCOPE) +SET(CPACK_NSIS_MUI_ICON "${CMAKE_SOURCE_DIR}/cmake/nsis/lmms.ico" PARENT_SCOPE) +SET(CPACK_NSIS_INSTALLED_ICON_NAME "${CMAKE_PROJECT_NAME}.exe" PARENT_SCOPE) +SET(CPACK_NSIS_DISPLAY_NAME "${PROJECT_NAME_UCASE} ${VERSION}" PARENT_SCOPE) +SET(CPACK_NSIS_HELP_LINK "${PROJECT_URL}" PARENT_SCOPE) +SET(CPACK_NSIS_URL_INFO_ABOUT "${PROJECT_URL}" PARENT_SCOPE) +SET(CPACK_NSIS_CONTACT "${PROJECT_EMAIL}" PARENT_SCOPE) +SET(CPACK_PACKAGE_EXECUTABLES "${CMAKE_PROJECT_NAME}.exe;${PROJECT_NAME_UCASE}" PARENT_SCOPE) +SET(CPACK_NSIS_MENU_LINKS "${CMAKE_PROJECT_NAME}.exe;${PROJECT_NAME_UCASE}" PARENT_SCOPE) +SET(CPACK_NSIS_DEFINES "!include ${CMAKE_SOURCE_DIR}/cmake/nsis/FileAssociation.nsh") +SET(CPACK_NSIS_DEFINES "${CPACK_NSIS_DEFINES}" PARENT_SCOPE) +SET(CPACK_PACKAGE_FILE_NAME "${CMAKE_PROJECT_NAME}-${VERSION}-win32" PARENT_SCOPE) +SET(CPACK_NSIS_EXTRA_INSTALL_COMMANDS " + \\\${registerExtension} \\\"$INSTDIR\\\\${CMAKE_PROJECT_NAME}.exe\\\" \\\".mmp\\\" \\\"${PROJECT_NAME_UCASE} Project\\\" + \\\${registerExtension} \\\"$INSTDIR\\\\${CMAKE_PROJECT_NAME}.exe\\\" \\\".mmpz\\\" \\\"${PROJECT_NAME_UCASE} Project (compressed)\\\" + " PARENT_SCOPE) +SET(CPACK_NSIS_EXTRA_UNINSTALL_COMMANDS " + \\\${unregisterExtension} \\\".mmp\\\" \\\"${PROJECT_NAME_UCASE} Project\\\" + \\\${unregisterExtension} \\\".mmpz\\\" \\\"${PROJECT_NAME_UCASE} Project (compressed)\\\" + DeleteRegKey HKCR \\\"${PROJECT_NAME_UCASE} Project\\\" + DeleteRegKey HKCR \\\"${PROJECT_NAME_UCASE} Project (compressed)\\\" + " PARENT_SCOPE) + +IF(WIN64) + SET(CPACK_PACKAGE_FILE_NAME "${CMAKE_PROJECT_NAME}-${VERSION}-win64" PARENT_SCOPE) + SET(CPACK_NSIS_DEFINES "${CPACK_NSIS_DEFINES} + InstallDir \\\"\\\$PROGRAMFILES64\\\\${CPACK_PACKAGE_INSTALL_DIRECTORY}\\\"" PARENT_SCOPE) +ENDIF() + +# Windows resource compilers +CONFIGURE_FILE("lmms.rc.in" "${CMAKE_BINARY_DIR}/lmms.rc") +CONFIGURE_FILE("zynaddsubfx.rc.in" "${CMAKE_BINARY_DIR}/plugins/zynaddsubfx/zynaddsubfx.rc") + +FILE(GLOB RAWWAVES "${CMAKE_INSTALL_PREFIX}/share/stk/rawwaves/*.raw") +INSTALL(FILES ${RAWWAVES} DESTINATION "${DATA_DIR}/stk/rawwaves") + diff --git a/data/lmms.ico b/cmake/nsis/lmms.ico similarity index 100% rename from data/lmms.ico rename to cmake/nsis/lmms.ico diff --git a/cmake/nsis/lmms.rc.in b/cmake/nsis/lmms.rc.in new file mode 100644 index 00000000000..7b6f6f79b82 --- /dev/null +++ b/cmake/nsis/lmms.rc.in @@ -0,0 +1,26 @@ +lmmsicon ICON cmake/nsis/lmms.ico +#include + +VS_VERSION_INFO VERSIONINFO + FILEVERSION @VERSION_MAJOR@,@VERSION_MINOR@,@VERSION_PATCH@,0 + FILEFLAGSMASK VS_FFI_FILEFLAGSMASK + FILEOS VOS_NT_WINDOWS32 + FILETYPE VFT_APP + FILESUBTYPE VFT2_UNKNOWN +BEGIN + BLOCK "StringFileInfo" + BEGIN + BLOCK "040904E4" + //language ID = U.S. English, charset = Windows, Multilingual + BEGIN + VALUE "Comments", "${PROJECT_URL}\0" + VALUE "CompanyName", "${PROJECT_AUTHOR}\0" + VALUE "FileDescription", "${PROJECT_NAME_UCASE}\0" + VALUE "FileVersion", "@VERSION@\0" + VALUE "LegalCopyright", "Copyright (c) ${PROJECT_COPYRIGHT}\0" + VALUE "OriginalFilename", "${CMAKE_PROJECT_NAME}.exe\0" + VALUE "ProductName", "${PROJECT_NAME_UCASE}\0" + VALUE "ProductVersion", "@VERSION@\0" + END + END +END diff --git a/data/nsis_branding.bmp b/cmake/nsis/nsis_branding.bmp similarity index 100% rename from data/nsis_branding.bmp rename to cmake/nsis/nsis_branding.bmp diff --git a/cmake/nsis/zynaddsubfx.rc.in b/cmake/nsis/zynaddsubfx.rc.in new file mode 100644 index 00000000000..baa59bb5083 --- /dev/null +++ b/cmake/nsis/zynaddsubfx.rc.in @@ -0,0 +1,26 @@ +zynaddsubfx_icon ICON zynaddsubfx/zynaddsubfx.ico +#include + +VS_VERSION_INFO VERSIONINFO + FILEVERSION 0,2,3,0 + FILEFLAGSMASK VS_FFI_FILEFLAGSMASK + FILEOS VOS_NT_WINDOWS32 + FILETYPE VFT_APP + FILESUBTYPE VFT2_UNKNOWN +BEGIN + BLOCK "StringFileInfo" + BEGIN + BLOCK "040904E4" + //language ID = U.S. English, charset = Windows, Multilingual + BEGIN + VALUE "Comments", "ZynAddSubFX Plugin - ${PROJECT_NAME_UCASE} (${PROJECT_URL})\0" + VALUE "CompanyName", "${PROJECT_AUTHOR}\0" + VALUE "FileDescription", "ZynAddSubFX ${PROJECT_NAME_UCASE} Plugin\0" + VALUE "FileVersion", "2.3.0/@VERSION@\0" + VALUE "LegalCopyright", "Copyright (c) Nasca Octavian Paul, Mark McCurry, Harald Hvaal, Tobias Doerffel\0" + VALUE "OriginalFilename", "RemoteZynAddSubFx.exe\0" + VALUE "ProductName", "ZynAddSubFX/${PROJECT_NAME_UCASE}\0" + VALUE "ProductVersion", "2.3.0/@VERSION@\0" + END + END +END diff --git a/configure b/configure deleted file mode 100755 index d9ec51ddca6..00000000000 --- a/configure +++ /dev/null @@ -1,6 +0,0 @@ -#!/bin/sh - -echo "Usage of configure & Co is deprecated! Please see the INSTALL file:" -echo "" - -cat INSTALL diff --git a/data/CMakeLists.txt b/data/CMakeLists.txt index d762f619b71..e80bb1b861e 100644 --- a/data/CMakeLists.txt +++ b/data/CMakeLists.txt @@ -5,20 +5,3 @@ ADD_SUBDIRECTORY(projects) ADD_SUBDIRECTORY(samples) ADD_SUBDIRECTORY(themes) ADD_SUBDIRECTORY(wavetables) -ADD_SUBDIRECTORY(scripts) - -IF(LMMS_BUILD_LINUX) - INSTALL(FILES themes/default/icon.png DESTINATION "${DATA_DIR}/pixmaps" RENAME lmms.png) - INSTALL(FILES lmms DESTINATION "${DATA_DIR}/menu") - INSTALL(FILES lmms.desktop DESTINATION "${DATA_DIR}/applications") - INSTALL(FILES lmms.xml DESTINATION "${DATA_DIR}/mime/packages") -ENDIF(LMMS_BUILD_LINUX) - -IF(LMMS_BUILD_WIN32) - FILE(GLOB RAWWAVES "${CMAKE_INSTALL_PREFIX}/share/stk/rawwaves/*.raw") - INSTALL(FILES ${RAWWAVES} DESTINATION "${DATA_DIR}/stk/rawwaves") -ENDIF(LMMS_BUILD_WIN32) - -IF(LMMS_BUILD_APPLE) - CONFIGURE_FILE("${CMAKE_SOURCE_DIR}/data/lmms.plist.in" "${CMAKE_INSTALL_PREFIX}/Info.plist") -ENDIF(LMMS_BUILD_APPLE) diff --git a/data/scripts/CMakeLists.txt b/data/scripts/CMakeLists.txt deleted file mode 100644 index 405b5f65cda..00000000000 --- a/data/scripts/CMakeLists.txt +++ /dev/null @@ -1,13 +0,0 @@ -SET(BUILD_ROOT "${CMAKE_CURRENT_BINARY_DIR}/../../") -IF(LMMS_BUILD_APPLE) - CONFIGURE_FILE("${CMAKE_SOURCE_DIR}/data/scripts/create_apple_bundle.sh.in" - "${BUILD_ROOT}/create_apple_bundle.sh" @ONLY) - CONFIGURE_FILE("${CMAKE_SOURCE_DIR}/data/scripts/create_apple_dmg.sh.in" - "${BUILD_ROOT}/create_apple_dmg.sh" @ONLY) - # Add execute permissions to bundle script - SET(CHMOD_CMD "chmod") - SET(CHMOD_ARG1 "u+x") - SET(CHMOD_ARG2 "${BUILD_ROOT}/create_apple_bundle.sh") - EXECUTE_PROCESS(COMMAND ${CHMOD_CMD} ${CHMOD_ARG1} ${CHMOD_ARG2}) - INSTALL(CODE "EXECUTE_PROCESS(COMMAND ${BUILD_ROOT}/create_apple_bundle.sh)") -ENDIF(LMMS_BUILD_APPLE) \ No newline at end of file diff --git a/AUTHORS b/doc/AUTHORS similarity index 100% rename from AUTHORS rename to doc/AUTHORS diff --git a/lmms.1 b/doc/lmms.1 similarity index 100% rename from lmms.1 rename to doc/lmms.1 diff --git a/lmms.rc.in b/lmms.rc.in deleted file mode 100644 index b5a9b158ca2..00000000000 --- a/lmms.rc.in +++ /dev/null @@ -1,26 +0,0 @@ -lmmsicon ICON data/lmms.ico -#include - -VS_VERSION_INFO VERSIONINFO - FILEVERSION @VERSION_MAJOR@,@VERSION_MINOR@,@VERSION_PATCH@,0 - FILEFLAGSMASK VS_FFI_FILEFLAGSMASK - FILEOS VOS_NT_WINDOWS32 - FILETYPE VFT_APP - FILESUBTYPE VFT2_UNKNOWN -BEGIN - BLOCK "StringFileInfo" - BEGIN - BLOCK "040904E4" - //language ID = U.S. English, charset = Windows, Multilingual - BEGIN - VALUE "Comments", "https://lmms.io\0" - VALUE "CompanyName", "LMMS Developers\0" - VALUE "FileDescription", "LMMS\0" - VALUE "FileVersion", "@VERSION@\0" - VALUE "LegalCopyright", "Copyright (c) 2004-2015 LMMS Developers\0" - VALUE "OriginalFilename", "lmms.exe\0" - VALUE "ProductName", "LMMS\0" - VALUE "ProductVersion", "@VERSION@\0" - END - END -END diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index e25c50fbbf4..35579608f6c 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -1,3 +1,6 @@ +CONFIGURE_FILE("lmmsconfig.h.in" "${CMAKE_BINARY_DIR}/lmmsconfig.h") +CONFIGURE_FILE("lmmsversion.h.in" "${CMAKE_BINARY_DIR}/lmmsversion.h") + SET(LMMS_SRCS "") SET(LMMS_UIS "") @@ -31,7 +34,7 @@ IF(WIN32) DEPENDS "${CMAKE_BINARY_DIR}/lmms.rc") ENDIF() -SET(lmms_EMBEDDED_RESOURCES "${CMAKE_SOURCE_DIR}/AUTHORS" "${CMAKE_SOURCE_DIR}/COPYING" "${CONTRIBUTORS}") +SET(lmms_EMBEDDED_RESOURCES "${CMAKE_SOURCE_DIR}/doc/AUTHORS" "${CMAKE_SOURCE_DIR}/LICENSE.txt" "${CONTRIBUTORS}") SET(LMMS_ER_H "${CMAKE_CURRENT_BINARY_DIR}/embedded_resources.h") ADD_CUSTOM_COMMAND(OUTPUT "${LMMS_ER_H}" COMMAND "${BIN2RES}" ARGS ${lmms_EMBEDDED_RESOURCES} > "\"${LMMS_ER_H}\"" DEPENDS bin2res) diff --git a/lmmsconfig.h.in b/src/lmmsconfig.h.in similarity index 100% rename from lmmsconfig.h.in rename to src/lmmsconfig.h.in diff --git a/lmmsversion.h.in b/src/lmmsversion.h.in similarity index 100% rename from lmmsversion.h.in rename to src/lmmsversion.h.in