diff --git a/cmake_support/OST.cmake b/cmake_support/OST.cmake index 44591345781fb9cf6320660777bd135fe3041066..9ecbc0c2b9a2182132980d0fb327a0c1e0ade15c 100644 --- a/cmake_support/OST.cmake +++ b/cmake_support/OST.cmake @@ -542,7 +542,7 @@ macro(pymod) set(_PARENT_LIB_NAME "${_PARENT_NAME}") endif() target_link_libraries("_${_LIB_NAME}" ${_PARENT_LIB_NAME} - ${Python_LIBRARIES} Boost::python) + Boost::python) set_target_properties("_${_LIB_NAME}" PROPERTIES LIBRARY_OUTPUT_DIRECTORY ${PYMOD_STAGE_DIR}) @@ -857,14 +857,8 @@ macro(setup_stage) if (UNIX AND NOT APPLE) check_architecture() endif() - set (ARCH ${CMAKE_NATIVE_ARCH}) - if ("${ARCH}" MATCHES "64" AND NOT _UBUNTU_LAYOUT) - set(LIB_DIR lib64 ) - set(LIB_STAGE_PATH "${STAGE_DIR}/lib64" ) - else() - set(LIB_DIR lib ) - set(LIB_STAGE_PATH "${STAGE_DIR}/lib" ) - endif() + set(LIB_DIR lib ) + set(LIB_STAGE_PATH "${STAGE_DIR}/lib" ) if (_UBUNTU_LAYOUT) set(LIBEXEC_PATH ${LIB_DIR}/openstructure/libexec ) set(LIBEXEC_STAGE_PATH ${LIB_STAGE_PATH}/openstructure/libexec ) diff --git a/modules/gui/src/CMakeLists.txt b/modules/gui/src/CMakeLists.txt index 5c2fd044ee6e83ae5ac20a358af83cc91cab2b06..b340d27335895f314db84744f94e87bf62f67092 100644 --- a/modules/gui/src/CMakeLists.txt +++ b/modules/gui/src/CMakeLists.txt @@ -452,7 +452,6 @@ module(NAME gui SOURCES ${OST_GUI_MOCS} ${OST_GUI_SOURCES} ${OST_GUI_HEADERS} DEPENDS_ON ost_gfx ost_io ost_mol_alg ost_seq_alg LINK ${QT_LIBRARIES} - ${Python_LIBRARIES} Boost::python ${SPNAV_LIBRARIES} NO_STATIC) @@ -469,10 +468,17 @@ qt5_wrap_cpp(OST_GOSTY_MOC "gosty.hh" OPTIONS -DBOOST_TT_HAS_OPERATOR_HPP_INCLUDED -DBOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) -set(LINK LINK ${QT_LIBRARIES} Boost::program_options) +find_package(Python 3 COMPONENTS Interpreter Development REQUIRED) -executable_libexec(NAME gosty SOURCES gosty.cc ${OST_GOSTY_MOC} - ${OST_QT_RESOURCE} DEPENDS_ON ost_gui ${LINK}) +set(GOSTY_LINK_LIBS + ${QT_LIBRARIES} + ${BOOST_PROGRAM_OPTIONS_LIBRARIES} + Python::Python) + +executable_libexec(NAME gosty + SOURCES gosty.cc ${OST_GOSTY_MOC} ${OST_QT_RESOURCE} + DEPENDS_ON ost_gui + LINK ${GOSTY_LINK_LIBS}) file(GLOB MOC_CXX_FILES moc_*.cxx) diff --git a/modules/gui/src/gosty.cc b/modules/gui/src/gosty.cc index 689cbf9eee7c0f6f341eecdb33e32d4e4f70889d..853899a17e4f9b923aae52b6043ca627fe39eea9 100644 --- a/modules/gui/src/gosty.cc +++ b/modules/gui/src/gosty.cc @@ -111,11 +111,7 @@ String setup_python_search_path(const String& root, PythonInterpreter& pi) #ifdef _MSC_VER String loc=root+"\\lib\\"+site_pkgs.str()+"\\site-packages"; #else -# if (defined(__ppc64__) || defined(__x86_64__)) && !defined(__APPLE__) && !OST_UBUNTU_LAYOUT - String loc=root+"/lib64/"+site_pkgs.str()+"/site-packages"; -# else String loc=root+"/lib/"+site_pkgs.str()+"/site-packages"; -# endif #endif pi.AppendModulePath(QString::fromStdString(loc)); // dng is an interactive python session, so add '.' to search path diff --git a/scripts/dng.in b/scripts/dng.in index 93e7d862e853343728468587dd96b5f4466771aa..624ec98b1194c6130364c48787a206b79fbf721f 100755 --- a/scripts/dng.in +++ b/scripts/dng.in @@ -20,14 +20,30 @@ # Startup script for a protein-centric user interface # Author: Marco Biasini -if [ -h "$0" ] ; then - SCRIPT_NAME=`readlink "$0"` +if [ -h "$0" ]; then + TARGET="$0" + while [ -h "$TARGET" ]; do + DIR="$(cd -P "$(dirname "$TARGET")" && pwd)" + TARGET="$(readlink "$TARGET")" + [[ $TARGET != /* ]] && TARGET="$DIR/$TARGET" + done + SCRIPT_PATH="$DIR/$(basename "$TARGET")" else - SCRIPT_NAME="$0" + SCRIPT_PATH="$0" fi -BIN_DIR=`dirname "$SCRIPT_NAME"` -source "$BIN_DIR/../@LIBEXEC_PATH@/ost_config" +# Get the absolute path of the script +if command -v realpath >/dev/null 2>&1; then + SCRIPT_PATH="$(realpath "$SCRIPT_PATH")" +elif command -v readlink >/dev/null 2>&1; then + SCRIPT_PATH="$(readlink -f "$SCRIPT_PATH")" +else + # Fallback for systems without realpath or readlink + SCRIPT_PATH="$(cd "$(dirname "$SCRIPT_PATH")" && pwd -P)/$(basename "$SCRIPT_PATH")" +fi + +BIN_DIR=$(dirname "$SCRIPT_PATH") +source "$BIN_DIR/../@LIBEXEC_PATH@/ost_config" opts="" diff --git a/scripts/ost.in b/scripts/ost.in index b85886a39356514615d557e9533906deafa5b62f..fc48014e0128dec2e0f21609f1766ef8cbc133c7 100755 --- a/scripts/ost.in +++ b/scripts/ost.in @@ -22,12 +22,29 @@ # convenience wrapper for non-gui openstructure interface 'ost' # # Self detect important directories -if [ -h "$0" ] ; then - SCRIPT_NAME=`readlink "$0"` +if [ -h "$0" ]; then + TARGET="$0" + while [ -h "$TARGET" ]; do + DIR="$(cd -P "$(dirname "$TARGET")" && pwd)" + TARGET="$(readlink "$TARGET")" + [[ $TARGET != /* ]] && TARGET="$DIR/$TARGET" + done + SCRIPT_PATH="$DIR/$(basename "$TARGET")" else - SCRIPT_NAME="$0" + SCRIPT_PATH="$0" fi -BIN_DIR=`dirname "$SCRIPT_NAME"` + +# Get the absolute path of the script +if command -v realpath >/dev/null 2>&1; then + SCRIPT_PATH="$(realpath "$SCRIPT_PATH")" +elif command -v readlink >/dev/null 2>&1; then + SCRIPT_PATH="$(readlink -f "$SCRIPT_PATH")" +else + # Fallback for systems without realpath or readlink + SCRIPT_PATH="$(cd "$(dirname "$SCRIPT_PATH")" && pwd -P)/$(basename "$SCRIPT_PATH")" +fi + +BIN_DIR=$(dirname "$SCRIPT_PATH") OST_EXEC_DIR=$(cd $BIN_DIR/../@LIBEXEC_PATH@ && pwd) export OST_EXEC_DIR