Currently all ELF files (binaries and libraries), get installed to /usr/share/musikcube. This patch moves all those files to their normal locations and fixes the code to expect that diff --git CMakeLists.txt CMakeLists.txt index d685695f..5ac43f1f 100644 --- CMakeLists.txt +++ CMakeLists.txt @@ -208,7 +208,7 @@ if (CMAKE_SYSTEM_NAME MATCHES "Darwin") install(FILES ${plugins} DESTINATION share/musikcube/plugins) else () file(GLOB plugins "bin/plugins/*.so") - install(FILES ${plugins} DESTINATION share/musikcube/plugins) + install(FILES ${plugins} DESTINATION lib/musikcube/plugins) endif () file(GLOB sdk_headers "src/musikcore/sdk/*.h") @@ -237,20 +237,12 @@ endif() if (CMAKE_SYSTEM_NAME MATCHES "Darwin") install(FILES "bin/libmusikcore.dylib" DESTINATION share/musikcube) else() - install(FILES "bin/libmusikcore.so" DESTINATION share/musikcube) + install(FILES "bin/libmusikcore.so" DESTINATION lib/) endif() # executable and shell script for musikcube install( FILES bin/musikcube - DESTINATION share/musikcube - PERMISSIONS - OWNER_EXECUTE OWNER_READ OWNER_WRITE - GROUP_EXECUTE GROUP_READ GROUP_WRITE - WORLD_EXECUTE WORLD_READ) - -install( - FILES "${CMAKE_CURRENT_BINARY_DIR}/src/musikcube/musikcube" DESTINATION bin/ PERMISSIONS OWNER_EXECUTE OWNER_READ OWNER_WRITE @@ -260,14 +252,6 @@ install( # executable and shell script for daemon install( FILES bin/musikcubed - DESTINATION share/musikcube - PERMISSIONS - OWNER_EXECUTE OWNER_READ OWNER_WRITE - GROUP_EXECUTE GROUP_READ GROUP_WRITE - WORLD_EXECUTE WORLD_READ) - -install( - FILES "${CMAKE_CURRENT_BINARY_DIR}/src/musikcubed/musikcubed" DESTINATION bin/ PERMISSIONS OWNER_EXECUTE OWNER_READ OWNER_WRITE diff --git src/musikcore/support/Common.cpp src/musikcore/support/Common.cpp index 58bc4d2f..1670c2f7 100644 --- src/musikcore/support/Common.cpp +++ src/musikcore/support/Common.cpp @@ -90,65 +90,11 @@ namespace musik { namespace core { } std::string GetPluginDirectory() { - std::string path(GetApplicationDirectory()); - path.append("/plugins/"); - return path; + return std::string("/usr/lib/musikcube/plugins"); } std::string GetApplicationDirectory() { - std::string result; - - #ifdef WIN32 - wchar_t widePath[2048]; - int length = GetModuleFileName(NULL, widePath, 2048); - if (length != 0 && length < 2048) { - result.assign(GetPath(u16to8(widePath).c_str())); - } - #elif __APPLE__ - char pathbuf[PATH_MAX + 1]; - uint32_t bufsize = sizeof(pathbuf); - _NSGetExecutablePath(pathbuf, &bufsize); - result.assign(pathbuf); - size_t last = result.find_last_of("/"); - result = result.substr(0, last); /* remove filename component */ - #else - char pathbuf[PATH_MAX + 1] = { 0 }; - - #ifdef __FreeBSD__ - int mib[4]; - mib[0] = CTL_KERN; - mib[1] = KERN_PROC; - mib[2] = KERN_PROC_PATHNAME; - mib[3] = -1; - size_t bufsize = sizeof(pathbuf); - sysctl(mib, 4, pathbuf, &bufsize, nullptr, 0); - #elif defined __OpenBSD__ - int mib[4]; - char **argv; - size_t len = ARG_MAX; - - mib[0] = CTL_KERN; - mib[1] = KERN_PROC_ARGS; - mib[2] = getpid(); - mib[3] = KERN_PROC_ARGV; - - argv = new char*[len]; - if (sysctl(mib, 4, argv, &len, nullptr, 0) < 0) abort(); - - boost::filesystem::path command = boost::filesystem::system_complete(argv[0]); - realpath(command.c_str(), pathbuf); - delete[] argv; - #else - std::string pathToProc = u8fmt("/proc/%d/exe", (int) getpid()); - readlink(pathToProc.c_str(), pathbuf, PATH_MAX); - #endif - - result.assign(pathbuf); - size_t last = result.find_last_of("/"); - result = result.substr(0, last); /* remove filename component */ - #endif - - return result; + return std::string("/usr/share/musikcube"); } std::string GetHomeDirectory() {