diff --git a/CMakeLists.txt b/CMakeLists.txt index cff0b94a6..513e4fa23 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -81,9 +81,16 @@ IF(HOST_IS_64BIT) ELSE(HOST_IS_64BIT) SET(LIB_DIR lib) ENDIF(HOST_IS_64BIT) -SET(PLUGIN_DIR ${LIB_DIR}/lmms) -SET(DATA_DIR ${CMAKE_INSTALL_PREFIX}/share) -SET(LMMS_DATA_DIR ${DATA_DIR}/lmms) + +IF(LMMS_BUILD_WIN32) + SET(PLUGIN_DIR plugins) + SET(DATA_DIR data) + SET(LMMS_DATA_DIR data) +ELSE(LMMS_BUILD_WIN32) + SET(PLUGIN_DIR ${LIB_DIR}/lmms) + SET(DATA_DIR share) + SET(LMMS_DATA_DIR ${DATA_DIR}/lmms) +ENDIF(LMMS_BUILD_WIN32) CHECK_INCLUDE_FILES(stdint.h LMMS_HAVE_STDINT_H) @@ -284,6 +291,8 @@ ENDIF(NOT LMMS_HAVE_SAMPLERATE) CONFIGURE_FILE(${CMAKE_SOURCE_DIR}/lmmsconfig.h.in ${CMAKE_BINARY_DIR}/lmmsconfig.h) +CONFIGURE_FILE(${CMAKE_SOURCE_DIR}/lmms.rc.in ${CMAKE_BINARY_DIR}/lmms.rc) + # people simply updating SVN will still have this and mess up build with it FILE(REMOVE include/lmmsconfig.h) @@ -310,9 +319,18 @@ ADD_FILE_DEPENDENCIES(lmmsconfig.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} -fno-exceptions ${CXXFLAGS}") -IF(NOT WIN32) +IF(WIN32) + SET(WINRC "${CMAKE_BINARY_DIR}/lmmsrc.obj") + ADD_CUSTOM_COMMAND(OUTPUT ${WINRC} + COMMAND /opt/mingw/bin/i586-mingw32-windres + -I${CMAKE_SOURCE_DIR} + -o${CMAKE_BINARY_DIR}/lmmsrc.obj + -i${CMAKE_BINARY_DIR}/lmms.rc + DEPENDS ${CMAKE_BINARY_DIR}/lmms.rc) + SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-attributes") +ELSE(WIN32) SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fPIC") -ENDIF(NOT WIN32) +ENDIF(WIN32) # make sub-directories ADD_SUBDIRECTORY(plugins) @@ -327,8 +345,15 @@ INCLUDE_DIRECTORIES(${CMAKE_BINARY_DIR} ${CMAKE_BINARY_DIR}/include ${CMAKE_SOUR LINK_DIRECTORIES(${CMAKE_INSTALL_PREFIX}/lib ${ASOUND_LIBRARY_DIR} ${JACK_LIBRARY_DIRS} ${SAMPLERATE_LIBRARY_DIRS} ${SNDFILE_LIBRARY_DIRS}) 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} lmmsconfig.h) -INSTALL(TARGETS lmms RUNTIME DESTINATION bin) +ADD_EXECUTABLE(lmms ${lmms_SOURCES} ${lmms_INCLUDES} ${LIBSAMPLERATE_SOURCES} ${ER_H} ${lmms_UI_out} lmmsconfig.h ${WINRC}) +IF(LMMS_BUILD_WIN32) + SET_TARGET_PROPERTIES(lmms PROPERTIES LINK_FLAGS "${LINK_FLAGS} -mwindows") + ADD_CUSTOM_COMMAND(TARGET lmms POST_BUILD COMMAND /opt/mingw/bin/i586-mingw32-strip ${CMAKE_BINARY_DIR}/lmms.exe) + INSTALL(TARGETS lmms RUNTIME DESTINATION .) + INSTALL(FILES /opt/mingw/bin/QtCore4.dll /opt/mingw/bin/QtGui4.dll /opt/mingw/bin/QtXml4.dll /opt/mingw/bin/libz.dll /opt/mingw/bin/libsndfile-1.dll /opt/mingw/bin/libvorbis-0.dll /opt/mingw/bin/libvorbisenc-2.dll /opt/mingw/bin/libvorbisfile-3.dll /opt/mingw/bin/libogg-0.dll /opt/mingw/bin/libfluidsynth-1.dll /opt/mingw/bin/libfftw3f-3.dll /opt/mingw/bin/SDL.dll /opt/mingw/i586-mingw32/bin/mingwm10.dll DESTINATION .) +ELSE(LMMS_BUILD_WIN32) + INSTALL(TARGETS lmms RUNTIME DESTINATION bin) +ENDIF(LMMS_BUILD_WIN32) # # rules for building localizations @@ -372,7 +397,7 @@ ADD_CUSTOM_TARGET(dist COMMAND rm -rf ${TMP}) # -# add win32-pkg-target +# add win32-pkg-target (deprecated - use "package" target instead) # ADD_CUSTOM_TARGET(win32-pkg COMMAND mkdir -p tmp/lmms/data @@ -473,22 +498,24 @@ INCLUDE(InstallRequiredSystemLibraries) SET(CPACK_PACKAGE_DESCRIPTION_SUMMARY "Linux MultiMedia Studio - easy music production for everyone!") SET(CPACK_PACKAGE_VENDOR "LMMS Developers") SET(CPACK_PACKAGE_DESCRIPTION_FILE "${CMAKE_SOURCE_DIR}/README") -#SET(CPACK_RESOURCE_FILE_LICENSE "${CMAKE_SOURCE_DIR}/COPYING") +SET(CPACK_RESOURCE_FILE_LICENSE "${CMAKE_SOURCE_DIR}/COPYING") SET(CPACK_PACKAGE_VERSION_MAJOR "${VERSION_MAJOR}") SET(CPACK_PACKAGE_VERSION_MINOR "${VERSION_MINOR}") SET(CPACK_PACKAGE_VERSION_PATCH "${VERSION_PATCH}-${VERSION_SUFFIX}") SET(CPACK_PACKAGE_INSTALL_DIRECTORY "LMMS-${VERSION}") IF(WIN32) -SET(CPACK_PACKAGE_ICON "${CMAKE_SOURCE_DIR}/data\\\\lmms.ico") -SET(CPACK_NSIS_INSTALLED_ICON_NAME "lmms.exe") +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 "Linux MultiMedia Studio (LMMS)") SET(CPACK_NSIS_HELP_LINK "http:\\\\\\\\lmms.sourceforge.net") SET(CPACK_NSIS_URL_INFO_ABOUT "http:\\\\\\\\lmms.sourceforge.net") SET(CPACK_NSIS_CONTACT "lmms-devel@lists.sourceforge.net") -SET(CPACK_NSIS_MODIFY_PATH ON) -ELSEIF(WIN32) -SET(CPACK_STRIP_FILES "bin/lmms") +SET(CPACK_PACKAGE_EXECUTABLES "lmms.exe;Linux MultiMedia Studio") +SET(CPACK_NSIS_MENU_LINKS "lmms.exe;Linux MultiMedia Studio") +ELSE(WIN32) +SET(CPACK_STRIP_FILES "bin/lmms;${PLUGIN_DIR}/*.so") +SET(CPACK_PACKAGE_EXECUTABLES "lmms" "LMMS binary") ENDIF(WIN32) SET(MACOSX_BUNDLE_ICON_FILE "${CMAKE_SOURCE_DIR}/data/themes/default/icon.png") @@ -499,7 +526,6 @@ SET(MACOSX_BUNDLE_SHORT_VERSION_STRING "${VERSION}") SET(MACOSX_BUNDLE_BUNDLE_VERSION "${VERSION}") SET(MACOSX_BUNDLE_COPYRIGHT "Tobias Doerffel, 2008") -SET(CPACK_PACKAGE_EXECUTABLES "lmms" "LMMS binary") SET(CPACK_SOURCE_GENERATOR "TBZ2") SET(CPACK_SOURCE_PACKAGE_FILE_NAME "lmms-${VERSION}") INCLUDE(CPack) diff --git a/ChangeLog b/ChangeLog index 2aa7d0db6..3c02a137b 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,25 @@ 2008-08-01 Tobias Doerffel + * src/core/midi/midi_winmm.cpp: + added debug-code + + * src/core/song.cpp: + do not reset window title twice when creating new project + + * src/core/main.cpp: + when creating a new project, show main-window afterwards - fixes + behaviour when debugging win32-version via WINE + + * cmake/modules/BuildPlugin.cmake: + * plugins/ladspa_effect/tap/CMakeLists.txt: + * plugins/ladspa_effect/caps/CMakeLists.txt: + * data/CMakeLists.txt: + * data/nsis_branding.bmp: + * CMakeLists.txt: + * lmms.rc.in: + - made cmake-files ready for NSIS-packaging + - added win-resource-object to LMMS-binary + * plugins/sf2_player/patches_dialog.cpp: * plugins/sf2_player/sf2_player.cpp: * plugins/sf2_player/patches_dialog.h: diff --git a/cmake/modules/BuildPlugin.cmake b/cmake/modules/BuildPlugin.cmake index 24f912cad..2f27c9e93 100644 --- a/cmake/modules/BuildPlugin.cmake +++ b/cmake/modules/BuildPlugin.cmake @@ -73,25 +73,27 @@ MACRO(BUILD_PLUGIN) ADD_FILE_DEPENDENCIES(${f} ${ER_H} ${plugin_MOC_out} ${plugin_UIC_out}) ENDFOREACH(f) # SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -i-static") + + IF(LMMS_BUILD_APPLE) + LINK_DIRECTORIES(${CMAKE_BINARY_DIR}) + LINK_LIBRARIES(${QT_LIBRARIES}) + ENDIF(LMMS_BUILD_APPLE) IF(LMMS_BUILD_WIN32) LINK_DIRECTORIES(${CMAKE_BINARY_DIR}) LINK_LIBRARIES(-llmms ${QT_LIBRARIES}) ENDIF(LMMS_BUILD_WIN32) + + ADD_LIBRARY(${PLUGIN_NAME} MODULE ${PLUGIN_SOURCES}) + INSTALL(TARGETS ${PLUGIN_NAME} LIBRARY DESTINATION "${PLUGIN_DIR}") + IF(LMMS_BUILD_APPLE) - LINK_DIRECTORIES(${CMAKE_BINARY_DIR}) - LINK_LIBRARIES(${QT_LIBRARIES}) - ADD_LIBRARY(${PLUGIN_NAME} MODULE ${PLUGIN_SOURCES}) SET_TARGET_PROPERTIES(${PLUGIN_NAME} PROPERTIES LINK_FLAGS "-bundle_loader ${CMAKE_BINARY_DIR}/lmms") - INSTALL(TARGETS ${PLUGIN_NAME} LIBRARY DESTINATION "${PLUGIN_DIR}") - ELSE(LMMS_BUILD_APPLE) - ADD_LIBRARY(${PLUGIN_NAME} SHARED ${PLUGIN_SOURCES}) ENDIF(LMMS_BUILD_APPLE) - 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 "") + ADD_CUSTOM_COMMAND(TARGET ${PLUGIN_NAME} POST_BUILD COMMAND /opt/mingw/bin/i586-mingw32-strip ${CMAKE_CURRENT_BINARY_DIR}/${PLUGIN_NAME}.dll) ENDIF(LMMS_BUILD_WIN32) + SET_DIRECTORY_PROPERTIES(PROPERTIES ADDITIONAL_MAKE_CLEAN_FILES "${ER_H} ${plugin_MOC_out}") ENDMACRO(BUILD_PLUGIN) diff --git a/data/CMakeLists.txt b/data/CMakeLists.txt index 0813368d8..cf5f34cc1 100644 --- a/data/CMakeLists.txt +++ b/data/CMakeLists.txt @@ -5,7 +5,9 @@ ADD_SUBDIRECTORY(samples) ADD_SUBDIRECTORY(themes) ADD_SUBDIRECTORY(track_icons) +IF(LMMS_BUILD_LINUX) 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) diff --git a/data/nsis_branding.bmp b/data/nsis_branding.bmp new file mode 100644 index 000000000..94691eb51 Binary files /dev/null and b/data/nsis_branding.bmp differ diff --git a/lmms.rc.in b/lmms.rc.in index 12264f2af..cff42ec8e 100644 --- a/lmms.rc.in +++ b/lmms.rc.in @@ -16,11 +16,11 @@ BEGIN VALUE "Comments", "Linux MultiMedia Studio (http://lmms.sf.net)\0" VALUE "CompanyName", "LMMS Developers\0" VALUE "FileDescription", "Linux MultiMedia Studio\0" - VALUE "FileVersion", "@PACKAGE_VERSION@\0" + VALUE "FileVersion", "@VERSION@\0" VALUE "LegalCopyright", "Copyright (c) 2004-2008 LMMS Developers\0" VALUE "OriginalFilename", "lmms.exe\0" VALUE "ProductName", "LMMS\0" - VALUE "ProductVersion", "@PACKAGE_VERSION@\0" + VALUE "ProductVersion", "@VERSION@\0" END END END diff --git a/plugins/ladspa_effect/caps/CMakeLists.txt b/plugins/ladspa_effect/caps/CMakeLists.txt index 5680a038c..a6e613dee 100644 --- a/plugins/ladspa_effect/caps/CMakeLists.txt +++ b/plugins/ladspa_effect/caps/CMakeLists.txt @@ -1,6 +1,8 @@ INCLUDE_DIRECTORIES("${CMAKE_SOURCE_DIR}/include") FILE(GLOB SOURCES *.cc) -ADD_LIBRARY(caps SHARED ${SOURCES}) +ADD_LIBRARY(caps MODULE ${SOURCES}) +INSTALL(TARGETS caps LIBRARY DESTINATION ${PLUGIN_DIR}/ladspa) + SET_TARGET_PROPERTIES(caps PROPERTIES PREFIX "") EXEC_PROGRAM(${CMAKE_C_COMPILER} ARGS --version OUTPUT_VARIABLE _gcc_version_info) STRING(REGEX MATCH "4\\.1\\.[0-9]" _gcc_is_4_1_x "${_gcc_version_info}") @@ -12,6 +14,9 @@ ELSE(NO_O3) SET_TARGET_PROPERTIES(caps PROPERTIES COMPILE_FLAGS "-O3 -Wno-write-strings") ENDIF(NO_O3) +IF(LMMS_BUILD_WIN32) + ADD_CUSTOM_COMMAND(TARGET caps POST_BUILD COMMAND /opt/mingw/bin/i586-mingw32-strip ${CMAKE_CURRENT_BINARY_DIR}/caps.dll) +ENDIF(LMMS_BUILD_WIN32) IF(LMMS_BUILD_APPLE) SET_TARGET_PROPERTIES(caps PROPERTIES LINK_FLAGS "${LINK_FLAGS} -shared -no-undefined") @@ -21,6 +26,5 @@ ENDIF(LMMS_BUILD_APPLE) IF(LMMS_BUILD_LINUX) SET_TARGET_PROPERTIES(caps PROPERTIES LINK_FLAGS "${LINK_FLAGS} -nostartfiles") - INSTALL(TARGETS caps LIBRARY DESTINATION ${PLUGIN_DIR}/ladspa) ENDIF(LMMS_BUILD_LINUX) diff --git a/plugins/ladspa_effect/tap/CMakeLists.txt b/plugins/ladspa_effect/tap/CMakeLists.txt index 3d9af5681..24f78a9b8 100644 --- a/plugins/ladspa_effect/tap/CMakeLists.txt +++ b/plugins/ladspa_effect/tap/CMakeLists.txt @@ -2,9 +2,13 @@ INCLUDE_DIRECTORIES("${CMAKE_SOURCE_DIR}/include") FILE(GLOB PLUGIN_SOURCES *.c) FOREACH(_item ${PLUGIN_SOURCES}) GET_FILENAME_COMPONENT(_plugin "${_item}" NAME_WE) - ADD_LIBRARY(${_plugin} SHARED ${_item}) + ADD_LIBRARY(${_plugin} MODULE ${_item}) + INSTALL(TARGETS ${_plugin} LIBRARY DESTINATION ${PLUGIN_DIR}/ladspa) SET_TARGET_PROPERTIES(${_plugin} PROPERTIES PREFIX "") 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") + IF(LMMS_BUILD_WIN32) + ADD_CUSTOM_COMMAND(TARGET ${_plugin} POST_BUILD COMMAND /opt/mingw/bin/i586-mingw32-strip ${CMAKE_CURRENT_BINARY_DIR}/${_plugin}.dll) + ENDIF(LMMS_BUILD_WIN32) IF(LMMS_BUILD_APPLE) SET_TARGET_PROPERTIES(${_plugin} PROPERTIES LINK_FLAGS "${LINK_FLAGS} -shared -no-undefined -Bsymbolic -lm") ELSE(LMMS_BUILD_APPLE) @@ -12,7 +16,6 @@ FOREACH(_item ${PLUGIN_SOURCES}) ENDIF(LMMS_BUILD_APPLE) IF(LMMS_BUILD_LINUX) SET_TARGET_PROPERTIES(${_plugin} PROPERTIES LINK_FLAGS "${LINK_FLAGS} -nostartfiles") - INSTALL(TARGETS ${_plugin} LIBRARY DESTINATION ${PLUGIN_DIR}/ladspa) ENDIF(LMMS_BUILD_LINUX) ENDFOREACH(_item ${PLUGIN_SOURCES})