diff --git a/CMakeLists.txt b/CMakeLists.txt index ae66ad417..65e5916d5 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -84,6 +84,8 @@ CHECK_INCLUDE_FILES(string.h LMMS_HAVE_STRING_H) CHECK_INCLUDE_FILES(process.h LMMS_HAVE_PROCESS_H) CHECK_INCLUDE_FILES(locale.h LMMS_HAVE_LOCALE_H) +LIST(APPEND CMAKE_PREFIX_PATH ${CMAKE_INSTALL_PREFIX}) + # check for Qt4 SET(QT_MIN_VERSION "4.3.0" COMPONENTS QtCore QtGui QtXml) FIND_PACKAGE(Qt4 REQUIRED) @@ -397,22 +399,25 @@ IF(LMMS_BUILD_WIN32) SET(EXTRA_LIBRARIES "-lwinmm") ENDIF() -ADD_DEFINITIONS(-D'LIB_DIR="${CMAKE_INSTALL_PREFIX}/${LIB_DIR}/"' -D'PLUGIN_DIR="${CMAKE_INSTALL_PREFIX}/${LIB_DIR}/lmms/"' ${PULSEAUDIO_DEFINITIONS} ${PORTAUDIO_DEFINITIONS}) +# Paths relative to lmms executable +FILE(RELATIVE_PATH LIB_DIR_RELATIVE /${BIN_DIR} /${LIB_DIR}) +FILE(RELATIVE_PATH PLUGIN_DIR_RELATIVE /${BIN_DIR} /${PLUGIN_DIR}) +ADD_DEFINITIONS(-D'LIB_DIR="${LIB_DIR_RELATIVE}/"' -D'PLUGIN_DIR="${PLUGIN_DIR_RELATIVE}/"' ${PULSEAUDIO_DEFINITIONS} ${PORTAUDIO_DEFINITIONS}) INCLUDE_DIRECTORIES(${CMAKE_BINARY_DIR} ${CMAKE_BINARY_DIR}/include ${CMAKE_SOURCE_DIR} ${CMAKE_SOURCE_DIR}/include ${SDL_INCLUDE_DIR} ${PORTAUDIO_INCLUDE_DIR} ${PULSEAUDIO_INCLUDE_DIR} ${JACK_INCLUDE_DIRS} ${OGGVORBIS_INCLUDE_DIR} ${SAMPLERATE_INCLUDE_DIRS} ${SNDFILE_INCLUDE_DIRS}) -LINK_DIRECTORIES(${CMAKE_INSTALL_PREFIX}/lib ${ASOUND_LIBRARY_DIR} ${JACK_LIBRARY_DIRS} ${SAMPLERATE_LIBRARY_DIRS} ${SNDFILE_LIBRARY_DIRS}) -LINK_LIBRARIES(${CMAKE_THREAD_LIBS_INIT} ${QT_LIBRARIES} ${ASOUND_LIBRARY} ${SDL_LIBRARY} ${PORTAUDIO_LIBRARIES} ${PULSEAUDIO_LIBRARIES} ${JACK_LIBRARIES} ${OGGVORBIS_LIBRARIES} ${SAMPLERATE_LIBRARIES} ${SNDFILE_LIBRARIES} ${EXTRA_LIBRARIES}) 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 COMMENT "Generating lmms.1.gz") ADD_EXECUTABLE(lmms ${lmms_SOURCES} ${lmms_INCLUDES} ${LIBSAMPLERATE_SOURCES} ${LMMS_ER_H} ${lmms_UI_out} lmmsconfig.h lmmsversion.h ${WINRC} ${CMAKE_BINARY_DIR}/lmms.1.gz) +TARGET_LINK_LIBRARIES(lmms ${CMAKE_THREAD_LIBS_INIT} ${QT_LIBRARIES} ${ASOUND_LIBRARY} ${SDL_LIBRARY} ${PORTAUDIO_LIBRARIES} ${PULSEAUDIO_LIBRARIES} ${JACK_LIBRARIES} ${OGGVORBIS_LIBRARIES} ${SAMPLERATE_LIBRARIES} ${SNDFILE_LIBRARIES} ${EXTRA_LIBRARIES}) + IF(LMMS_BUILD_WIN32) SET_TARGET_PROPERTIES(lmms PROPERTIES LINK_FLAGS "${LINK_FLAGS} -mwindows") ADD_CUSTOM_COMMAND(TARGET lmms POST_BUILD COMMAND ${STRIP} ${CMAKE_BINARY_DIR}/lmms.exe) - INSTALL(TARGETS lmms RUNTIME DESTINATION .) + INSTALL(TARGETS lmms RUNTIME DESTINATION ${BIN_DIR}) INSTALL(FILES ${MINGW_PREFIX}/bin/QtCore4.dll ${MINGW_PREFIX}/bin/QtGui4.dll @@ -438,7 +443,7 @@ ELSE(LMMS_BUILD_WIN32) SET_TARGET_PROPERTIES(lmms PROPERTIES LINK_FLAGS "${LINK_FLAGS} -Wl,-E") ENDIF(NOT LMMS_BUILD_APPLE) - INSTALL(TARGETS lmms RUNTIME DESTINATION bin) + INSTALL(TARGETS lmms RUNTIME DESTINATION ${BIN_DIR}) INSTALL(FILES ${CMAKE_BINARY_DIR}/lmms.1.gz DESTINATION ${CMAKE_INSTALL_PREFIX}/share/man/man1/ PERMISSIONS OWNER_READ GROUP_READ WORLD_READ) ENDIF(LMMS_BUILD_WIN32) diff --git a/cmake/modules/BuildPlugin.cmake b/cmake/modules/BuildPlugin.cmake index 2e21eb0ad..283c4ba79 100644 --- a/cmake/modules/BuildPlugin.cmake +++ b/cmake/modules/BuildPlugin.cmake @@ -54,7 +54,7 @@ MACRO(BUILD_PLUGIN) CAR(PLUGIN_NAME ${PLUGIN_DEFAULT_ARGS}) CDR(PLUGIN_SOURCES ${PLUGIN_DEFAULT_ARGS}) - INCLUDE_DIRECTORIES(${CMAKE_CURRENT_BINARY_DIR} ${CMAKE_BINARY_DIR} ${CMAKE_SOURCE_DIR}/include ${CMAKE_SOURCE_DIR}/src/gui ${CMAKE_INSTALL_PREFIX}/include) + INCLUDE_DIRECTORIES(${CMAKE_CURRENT_BINARY_DIR} ${CMAKE_BINARY_DIR} ${CMAKE_SOURCE_DIR}/include ${CMAKE_SOURCE_DIR}/src/gui) ADD_DEFINITIONS(-DPLUGIN_NAME=${PLUGIN_NAME}) diff --git a/cmake/modules/DetectMachine.cmake b/cmake/modules/DetectMachine.cmake index 9642da3c2..ccb8638be 100644 --- a/cmake/modules/DetectMachine.cmake +++ b/cmake/modules/DetectMachine.cmake @@ -44,10 +44,12 @@ ENDIF(CMAKE_INSTALL_LIBDIR) IF(LMMS_BUILD_WIN32) + SET(BIN_DIR .) SET(PLUGIN_DIR plugins) SET(DATA_DIR data) SET(LMMS_DATA_DIR data) ELSE(LMMS_BUILD_WIN32) + SET(BIN_DIR bin) SET(PLUGIN_DIR ${LIB_DIR}/lmms) SET(DATA_DIR share) SET(LMMS_DATA_DIR ${DATA_DIR}/lmms) diff --git a/src/core/config_mgr.cpp b/src/core/config_mgr.cpp index e8d121692..653c14d5d 100644 --- a/src/core/config_mgr.cpp +++ b/src/core/config_mgr.cpp @@ -63,7 +63,7 @@ configManager::configManager() : m_pluginDir( qApp->applicationDirPath() + QDir::separator() + "plugins" + QDir::separator() ), #else - m_pluginDir( QString( PLUGIN_DIR ) ), + m_pluginDir( qApp->applicationDirPath() + '/' + PLUGIN_DIR ), #endif m_vstDir( m_workingDir + "vst" + QDir::separator() ), m_flDir( QDir::home().absolutePath() ) @@ -347,7 +347,7 @@ void configManager::loadConfigFile() #ifdef LMMS_BUILD_WIN32 m_ladDir = m_pluginDir + "ladspa" + QDir::separator(); #else - m_ladDir = QString( LIB_DIR ) + "/ladspa/"; + m_ladDir = qApp->applicationDirPath() + '/' + LIB_DIR + "/ladspa/"; #endif } diff --git a/src/core/ladspa_manager.cpp b/src/core/ladspa_manager.cpp index d70934694..4d78ebc5d 100644 --- a/src/core/ladspa_manager.cpp +++ b/src/core/ladspa_manager.cpp @@ -24,6 +24,7 @@ * */ +#include #include #include #include @@ -44,7 +45,7 @@ ladspaManager::ladspaManager() ladspaDirectories.push_back( configManager::inst()->pluginDir() + "ladspa" ); #ifndef LMMS_BUILD_WIN32 - ladspaDirectories.push_back( QString( LIB_DIR ) + "ladspa" ); + ladspaDirectories.push_back( qApp->applicationDirPath() + '/' + LIB_DIR + "ladspa" ); ladspaDirectories.push_back( "/usr/lib/lmms/ladspa" ); ladspaDirectories.push_back( "/usr/local/lib/lmms/ladspa" ); ladspaDirectories.push_back( "/usr/lib/ladspa" );