Skip to content

Commit dee818e

Browse files
Merge pull request #38904 from mantidproject/fix_conda_install
Only set XKB_CONFIG_ROOT for standalone installs & set GSETTINGS_SCHEMA_DEFINITIONS properly on conda installs
2 parents 1d016f6 + 36b5c9e commit dee818e

File tree

2 files changed

+20
-16
lines changed

2 files changed

+20
-16
lines changed

buildconfig/CMake/LinuxPackageScripts.cmake

Lines changed: 19 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,7 @@ fi"
5656
)
5757

5858
# The scripts need jemalloc to be resolved to the runtime library as the plain .so symlink is only present when a
59-
# -dev/-devel package is presentz
59+
# -dev/-devel package is present
6060
if(JEMALLOCLIB_FOUND)
6161
get_filename_component(JEMALLOC_RUNTIME_LIB ${JEMALLOC_LIBRARIES} REALPATH)
6262
# We only want to use the major version number
@@ -92,15 +92,6 @@ if [ -n \"\$1\" ] && [ \"\$1\" = \"--debug\" ]; then
9292
fi"
9393
)
9494

95-
# Without specifying these schema files, the standalone can fail to launch on Linux. Inside a conda environment this
96-
# environment variable is set by something else.
97-
set(GSETTINGS_SCHEMA_DEFINITIONS
98-
"# Specify path to schema files
99-
if [ -z \"\${GSETTINGS_SCHEMA_DIR}\" ]; then
100-
GSETTINGS_MANTID_PATH=\${INSTALLDIR}/share/glib-2.0/schemas
101-
fi"
102-
)
103-
10495
set(ERROR_CMD "-m mantidqt.dialogs.errorreports.main --exitcode=\$?")
10596

10697
# Local dev version
@@ -134,20 +125,33 @@ unset(PYTHON_ARGS)
134125

135126
if(ENABLE_WORKBENCH)
136127
foreach(install_type conda;standalone)
137-
# used by mantidworkbench
138128
if(${install_type} STREQUAL "conda")
139-
set(LOCAL_PYPATH "\${CONDA_PREFIX}/bin:\${CONDA_PREFIX}/lib:\${CONDA_PREFIX}/plugins")
140-
set(PYTHON_EXEC_LOCAL "\${CONDA_PREFIX}/bin/python")
129+
set(ROOT_DIR "\${CONDA_PREFIX}")
141130
set(PREAMBLE "${CONDA_PREAMBLE_TEXT}")
142131
set(DEST_FILENAME_SUFFIX "")
132+
# Don't need to set this for a conda environment
133+
set(XKB_CONFIG_ROOT_COMMAND "")
143134
elseif(${install_type} STREQUAL "standalone")
144-
set(LOCAL_PYPATH "\${INSTALLDIR}/bin:\${INSTALLDIR}/lib:\${INSTALLDIR}/plugins")
145-
set(PYTHON_EXEC_LOCAL "\${INSTALLDIR}/bin/python")
135+
set(ROOT_DIR "\${INSTALLDIR}")
146136
set(PREAMBLE "${SYS_PREAMBLE_TEXT}")
147137
set(DEST_FILENAME_SUFFIX ".standalone")
138+
# Need to set this, otherwise stanalone won't launch on some linux distributions
139+
set(XKB_CONFIG_ROOT_COMMAND "XKB_CONFIG_ROOT=\${INSTALLDIR}/share/X11/xkb")
148140
else()
149141
message(FATAL_ERROR "Unknown installation type '${install_type}' for workbench startup scripts")
150142
endif()
143+
144+
set(LOCAL_PYPATH "${ROOT_DIR}/bin:${ROOT_DIR}/lib:${ROOT_DIR}/plugins")
145+
set(PYTHON_EXEC_LOCAL "${ROOT_DIR}/bin/python")
146+
# Without specifying these schema files, the standalone can fail to launch on Linux. Inside a conda environment this
147+
# environment variable is set by something else.
148+
set(GSETTINGS_SCHEMA_DEFINITIONS
149+
"# Specify path to schema files
150+
if [ -z \"\${GSETTINGS_SCHEMA_DIR}\" ]; then
151+
GSETTINGS_MANTID_PATH=${ROOT_DIR}/share/glib-2.0/schemas
152+
fi"
153+
)
154+
151155
# workbench launcher for jemalloc
152156
configure_file(
153157
${CMAKE_MODULE_PATH}/Packaging/launch_mantidworkbench.sh.in

buildconfig/CMake/Packaging/launch_mantidworkbench.sh.in

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,6 @@ fi
2323
LD_PRELOAD=${LOCAL_PRELOAD} \
2424
PYTHONPATH=${LOCAL_PYTHONPATH} @QT_QPA@ \
2525
GSETTINGS_SCHEMA_DIR=${GSETTINGS_SCHEMA_DIR}:${GSETTINGS_MANTID_PATH} \
26-
XKB_CONFIG_ROOT=${INSTALLDIR}/share/X11/xkb \
26+
@XKB_CONFIG_ROOT_COMMAND@ \
2727
@WRAPPER_PREFIX@$VGLRUN $GDB \
2828
@PYTHON_EXEC_LOCAL@@PYTHON_ARGS@ @MANTIDWORKBENCH_EXEC@ $SINGLEPROCESS "$@"@WRAPPER_POSTFIX@

0 commit comments

Comments
 (0)