diff --git a/CMakeLists.txt b/CMakeLists.txt
index 70d41428d8..845aaf656d 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -994,10 +994,6 @@ if(USE_PREBUILT_QTWEBKIT_PACKAGE)
add_definitions(-DENABLE_TEST_PLUGINS)
endif()
- # Let OpenCOR know that we want Python support
-
- add_definitions(-DPYTHON_SUPPORT)
-
# Let OpenCOR know about the prebuilt version of our QtWebKit package
# being used
@@ -1023,6 +1019,18 @@ if(USE_PREBUILT_QTWEBKIT_PACKAGE)
endforeach()
endif()
+# Keep track of whether we are building OpenCOR with Python support and, if so,
+# let OpenCOR know about it
+
+if(NOT "${PYTHON_SCRIPT_DIR}" STREQUAL "")
+ set(PYTHON_SUPPORT TRUE)
+
+ add_definitions(-DPYTHON_SUPPORT)
+
+ string(REPLACE "${PROJECT_BUILD_DIR}/" ""
+ RELATIVE_PYTHON_SCRIPT_DIR "${PYTHON_SCRIPT_DIR}")
+endif()
+
# Fetch parts of our documentation and build it, if we are neither building
# Python nor QtWebKit
# Note: we need Python because we rely on Sphinx to build our documentation...
@@ -1085,7 +1093,7 @@ endif()
# Note: this is because the lookup scope changes for DSOs that are loaded using
# dlopen() (see https://www.akkadia.org/drepper/dsohowto.pdf)...
-if(NOT WIN32 AND NOT APPLE)
+if(NOT WIN32 AND NOT APPLE AND PYTHON_SUPPORT)
include_directories(${PYTHON_INCLUDE_DIR})
target_link_libraries(${CMAKE_PROJECT_NAME}
@@ -1279,9 +1287,6 @@ else()
set(CPACK_PACKAGE_VERSION_PATCH "${PROJECT_VERSION_PATCH}")
endif()
-string(REPLACE "${PROJECT_BUILD_DIR}/" ""
- RELATIVE_PYTHON_SCRIPT_DIR "${PYTHON_SCRIPT_DIR}")
-
if(WIN32)
# Select NSIS, if available, and ZIP as the packagers on Windows
@@ -1364,37 +1369,39 @@ if(WIN32)
# skip them in that case (see
# https://github.com/opencor/opencor/issues/1255#issuecomment-550605710)...
- if(RELEASE_MODE)
- copy_file_to_build_dir(DIRECT ${PLATFORM_DISTRIB_DIR} ${RELATIVE_PYTHON_SCRIPT_DIR} runjupyter.bat)
- copy_file_to_build_dir(DIRECT ${PLATFORM_DISTRIB_DIR} ${RELATIVE_PYTHON_SCRIPT_DIR} start_jupyter.py)
-
- install(FILES ${PLATFORM_DISTRIB_DIR}/runjupyter.bat
- ${PLATFORM_DISTRIB_DIR}/start_jupyter.py
- DESTINATION ${RELATIVE_PYTHON_SCRIPT_DIR})
+ if(PYTHON_SUPPORT)
+ if(RELEASE_MODE)
+ copy_file_to_build_dir(DIRECT ${PLATFORM_DISTRIB_DIR} ${RELATIVE_PYTHON_SCRIPT_DIR} runjupyter.bat)
+ copy_file_to_build_dir(DIRECT ${PLATFORM_DISTRIB_DIR} ${RELATIVE_PYTHON_SCRIPT_DIR} start_jupyter.py)
+
+ install(FILES ${PLATFORM_DISTRIB_DIR}/runjupyter.bat
+ ${PLATFORM_DISTRIB_DIR}/start_jupyter.py
+ DESTINATION ${RELATIVE_PYTHON_SCRIPT_DIR})
+
+ set(JUPYTER_CONSOLE_FILENAME "${PROJECT_BUILD_DIR}/jupyterconsole.bat")
+
+ configure_file(${PLATFORM_DISTRIB_DIR}/jupyterconsole.bat.in ${JUPYTER_CONSOLE_FILENAME})
+ copy_file_to_build_dir(DIRECT ${PLATFORM_DISTRIB_DIR} . jupyterlab.bat)
+ copy_file_to_build_dir(DIRECT ${PLATFORM_DISTRIB_DIR} . jupyterlab.vbs)
+ copy_file_to_build_dir(DIRECT ${PLATFORM_DISTRIB_DIR} . jupyternotebook.bat)
+ copy_file_to_build_dir(DIRECT ${PLATFORM_DISTRIB_DIR} . jupyternotebook.vbs)
+
+ install(FILES ${JUPYTER_CONSOLE_FILENAME}
+ ${PLATFORM_DISTRIB_DIR}/jupyterlab.bat
+ ${PLATFORM_DISTRIB_DIR}/jupyterlab.vbs
+ ${PLATFORM_DISTRIB_DIR}/jupyternotebook.bat
+ ${PLATFORM_DISTRIB_DIR}/jupyternotebook.vbs
+ DESTINATION .)
+ endif()
- set(JUPYTER_CONSOLE_FILENAME "${PROJECT_BUILD_DIR}/jupyterconsole.bat")
+ set(PYTHON_SHELL_FILENAME "${PROJECT_BUILD_DIR}/pythonshell.bat")
- configure_file(${PLATFORM_DISTRIB_DIR}/jupyterconsole.bat.in ${JUPYTER_CONSOLE_FILENAME})
- copy_file_to_build_dir(DIRECT ${PLATFORM_DISTRIB_DIR} . jupyterlab.bat)
- copy_file_to_build_dir(DIRECT ${PLATFORM_DISTRIB_DIR} . jupyterlab.vbs)
- copy_file_to_build_dir(DIRECT ${PLATFORM_DISTRIB_DIR} . jupyternotebook.bat)
- copy_file_to_build_dir(DIRECT ${PLATFORM_DISTRIB_DIR} . jupyternotebook.vbs)
+ configure_file(${PLATFORM_DISTRIB_DIR}/pythonshell.bat.in ${PYTHON_SHELL_FILENAME})
- install(FILES ${JUPYTER_CONSOLE_FILENAME}
- ${PLATFORM_DISTRIB_DIR}/jupyterlab.bat
- ${PLATFORM_DISTRIB_DIR}/jupyterlab.vbs
- ${PLATFORM_DISTRIB_DIR}/jupyternotebook.bat
- ${PLATFORM_DISTRIB_DIR}/jupyternotebook.vbs
+ install(FILES ${PYTHON_SHELL_FILENAME}
DESTINATION .)
endif()
- set(PYTHON_SHELL_FILENAME "${PROJECT_BUILD_DIR}/pythonshell.bat")
-
- configure_file(${PLATFORM_DISTRIB_DIR}/pythonshell.bat.in ${PYTHON_SHELL_FILENAME})
-
- install(FILES ${PYTHON_SHELL_FILENAME}
- DESTINATION .)
-
# File type association
# Note: the calls to SHChangeNotify are to ensure that Windows refreshes
# file icons (so that it is clear to the user that an extension has
@@ -1444,26 +1451,28 @@ elseif(APPLE)
# Shell scripts to setup and run Python and Jupyter
- set(RUN_JUPYTER_FILENAME ${PYTHON_SCRIPT_DIR}/runjupyter)
+ if(PYTHON_SUPPORT)
+ set(RUN_JUPYTER_FILENAME ${PYTHON_SCRIPT_DIR}/runjupyter)
- configure_file(${PLATFORM_DISTRIB_DIR}/runjupyter.in ${RUN_JUPYTER_FILENAME} @ONLY)
+ configure_file(${PLATFORM_DISTRIB_DIR}/runjupyter.in ${RUN_JUPYTER_FILENAME} @ONLY)
- set(JUPYTER_CONSOLE_FILENAME ${PROJECT_BUILD_DIR}/jupyterconsole)
- set(JUPYTER_LAB_FILENAME ${PROJECT_BUILD_DIR}/jupyterlab)
- set(JUPYTER_NOTEBOOK_FILENAME ${PROJECT_BUILD_DIR}/jupyternotebook)
- set(PYTHON_SHELL_FILENAME ${PROJECT_BUILD_DIR}/pythonshell)
+ set(JUPYTER_CONSOLE_FILENAME ${PROJECT_BUILD_DIR}/jupyterconsole)
+ set(JUPYTER_LAB_FILENAME ${PROJECT_BUILD_DIR}/jupyterlab)
+ set(JUPYTER_NOTEBOOK_FILENAME ${PROJECT_BUILD_DIR}/jupyternotebook)
+ set(PYTHON_SHELL_FILENAME ${PROJECT_BUILD_DIR}/pythonshell)
- configure_file(${PLATFORM_DISTRIB_DIR}/jupyterconsole.in ${JUPYTER_CONSOLE_FILENAME} @ONLY)
- configure_file(${PLATFORM_DISTRIB_DIR}/jupyterlab.in ${JUPYTER_LAB_FILENAME} @ONLY)
- configure_file(${PLATFORM_DISTRIB_DIR}/jupyternotebook.in ${JUPYTER_NOTEBOOK_FILENAME} @ONLY)
- configure_file(${PLATFORM_DISTRIB_DIR}/pythonshell.in ${PYTHON_SHELL_FILENAME} @ONLY)
+ configure_file(${PLATFORM_DISTRIB_DIR}/jupyterconsole.in ${JUPYTER_CONSOLE_FILENAME} @ONLY)
+ configure_file(${PLATFORM_DISTRIB_DIR}/jupyterlab.in ${JUPYTER_LAB_FILENAME} @ONLY)
+ configure_file(${PLATFORM_DISTRIB_DIR}/jupyternotebook.in ${JUPYTER_NOTEBOOK_FILENAME} @ONLY)
+ configure_file(${PLATFORM_DISTRIB_DIR}/pythonshell.in ${PYTHON_SHELL_FILENAME} @ONLY)
- install(FILES ${JUPYTER_CONSOLE_FILENAME}
- ${JUPYTER_LAB_FILENAME}
- ${JUPYTER_NOTEBOOK_FILENAME}
- ${PYTHON_SHELL_FILENAME}
- DESTINATION .
- PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE)
+ install(FILES ${JUPYTER_CONSOLE_FILENAME}
+ ${JUPYTER_LAB_FILENAME}
+ ${JUPYTER_NOTEBOOK_FILENAME}
+ ${PYTHON_SHELL_FILENAME}
+ DESTINATION .
+ PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE)
+ endif()
else()
# Select TGZ as the packager on Linux
@@ -1538,26 +1547,28 @@ else()
# Shell scripts to setup and run Python and Jupyter
- copy_file_to_build_dir(DIRECT ${PLATFORM_DISTRIB_DIR} ${RELATIVE_PYTHON_SCRIPT_DIR} runjupyter)
+ if(PYTHON_SUPPORT)
+ copy_file_to_build_dir(DIRECT ${PLATFORM_DISTRIB_DIR} ${RELATIVE_PYTHON_SCRIPT_DIR} runjupyter)
- install(FILES ${PLATFORM_DISTRIB_DIR}/runjupyter
- DESTINATION ${RELATIVE_PYTHON_SCRIPT_DIR}
- PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE)
+ install(FILES ${PLATFORM_DISTRIB_DIR}/runjupyter
+ DESTINATION ${RELATIVE_PYTHON_SCRIPT_DIR}
+ PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE)
- set(JUPYTER_CONSOLE_FILENAME ${PROJECT_BUILD_DIR}/jupyterconsole)
- set(PYTHON_SHELL_FILENAME ${PROJECT_BUILD_DIR}/pythonshell)
+ set(JUPYTER_CONSOLE_FILENAME ${PROJECT_BUILD_DIR}/jupyterconsole)
+ set(PYTHON_SHELL_FILENAME ${PROJECT_BUILD_DIR}/pythonshell)
- configure_file(${PLATFORM_DISTRIB_DIR}/jupyterconsole.in ${JUPYTER_CONSOLE_FILENAME} @ONLY)
- copy_file_to_build_dir(DIRECT ${PLATFORM_DISTRIB_DIR} . jupyterlab)
- copy_file_to_build_dir(DIRECT ${PLATFORM_DISTRIB_DIR} . jupyternotebook)
- configure_file(${PLATFORM_DISTRIB_DIR}/pythonshell.in ${PYTHON_SHELL_FILENAME} @ONLY)
+ configure_file(${PLATFORM_DISTRIB_DIR}/jupyterconsole.in ${JUPYTER_CONSOLE_FILENAME} @ONLY)
+ copy_file_to_build_dir(DIRECT ${PLATFORM_DISTRIB_DIR} . jupyterlab)
+ copy_file_to_build_dir(DIRECT ${PLATFORM_DISTRIB_DIR} . jupyternotebook)
+ configure_file(${PLATFORM_DISTRIB_DIR}/pythonshell.in ${PYTHON_SHELL_FILENAME} @ONLY)
- install(FILES ${JUPYTER_CONSOLE_FILENAME}
- ${PLATFORM_DISTRIB_DIR}/jupyterlab
- ${PLATFORM_DISTRIB_DIR}/jupyternotebook
- ${PYTHON_SHELL_FILENAME}
- DESTINATION .
- PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE)
+ install(FILES ${JUPYTER_CONSOLE_FILENAME}
+ ${PLATFORM_DISTRIB_DIR}/jupyterlab
+ ${PLATFORM_DISTRIB_DIR}/jupyternotebook
+ ${PYTHON_SHELL_FILENAME}
+ DESTINATION .
+ PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE)
+ endif()
endif()
# Specify the package file name, depending on whether we are generating a
diff --git a/distrib/linux/mesa/CMakeLists.txt b/distrib/linux/mesa/CMakeLists.txt
index d84069b273..c33fcf23ec 100644
--- a/distrib/linux/mesa/CMakeLists.txt
+++ b/distrib/linux/mesa/CMakeLists.txt
@@ -3,11 +3,11 @@ project(Mesa)
# Name and version of our package
set(PACKAGE_NAME Mesa)
-set(PACKAGE_VERSION 19.2.1)
+set(PACKAGE_VERSION 19.2.6)
# Git tag for our library
-set(GIT_TAG v19.2.1)
+set(GIT_TAG v19.2.6)
# Specify where our local package will be installed
@@ -30,9 +30,9 @@ if(USE_PREBUILT_MESA_PACKAGE)
# Retrieve the library's package
retrieve_package_file(${PACKAGE_NAME} ${PACKAGE_VERSION}
- ${FULL_LOCAL_EXTERNAL_PACKAGE_DIR} 33424e212f7f31f046041a6950d8b64fa8599346
+ ${FULL_LOCAL_EXTERNAL_PACKAGE_DIR} 0943cd1413a302c943d6e613f44775ca216e8374
SHA1_FILES ${SHA1_FILES}
- SHA1_VALUES 3f90abfbe269daeb47909a2d4b728283e0f10479)
+ SHA1_VALUES 6d8f2e89ef80e7f0f3fc4307e3b286a212664dd7)
else()
# Build Mesa as an external project
diff --git a/doc/downloads/index.js b/doc/downloads/index.js
index ebd6631840..e9f5b72aea 100644
--- a/doc/downloads/index.js
+++ b/doc/downloads/index.js
@@ -41,7 +41,7 @@ var jsonData = { "versions": [
{ "change": "Python support: update the PATH using \\
rather than /
on Windows (see issue #2219)." },
{ "change": "SED-ML support: added support left and right triangle symbols (see issue #2173)." },
{ "change": "Simulation Experiment view: properly handle the Graph Panel properties (see issue #2171). Make sure that curves are plotted with all of their original settings when reloading a SED-ML file (see issue #2176). Make sure that all of a solver's properties get saved to a SED-ML file (see issue #2185)." },
- { "change": "Third-party libraries: upgraded the OpenSSL library to version 1.1.1d (see issue #2157). Upgraded LLVM+Clang to version 9.0.0 (see issue #2161). Upgraded Mesa to version 19.2.1 (see issue #2197). Upgraded the SUNDIALS library to version 5.0.0 (see issue #2198). Upgraded QScintilla to version 2.11.3 (see issue #2208)." }
+ { "change": "Third-party libraries: upgraded the OpenSSL library to version 1.1.1d (see issue #2157). Upgraded LLVM+Clang to version 9.0.0 (see issue #2161). Upgraded the SUNDIALS library to version 5.0.0 (see issue #2198). Upgraded QScintilla to version 2.11.3 (see issue #2208). Upgraded Mesa to version 19.2.6 (see issue #2230)." }
]
},
{ "major": 0, "minor": 5, "patch": 0, "day": 15, "month": 10, "year": 2016, "type": 0, "license": 1,
diff --git a/src/main.cpp b/src/main.cpp
index 907776ef17..3b3d8ee10b 100644
--- a/src/main.cpp
+++ b/src/main.cpp
@@ -25,7 +25,7 @@ along with this program. If not, see .
//==============================================================================
-#ifdef Q_OS_LINUX
+#if defined(PYTHON_SUPPORT) && defined(Q_OS_LINUX)
#include "Python.h"
// Note: this needs to be included before to prevent name clashes...
#endif
@@ -72,7 +72,7 @@ int main(int pArgC, char *pArgV[])
// using dlopen() (see
// https://www.akkadia.org/drepper/dsohowto.pdf)...
-#ifdef Q_OS_LINUX
+#if defined(PYTHON_SUPPORT) && defined(Q_OS_LINUX)
Py_NoUserSiteDirectory = 1;
#endif
diff --git a/src/plugins/thirdParty/Python/CMakeLists.txt b/src/plugins/thirdParty/Python/CMakeLists.txt
index 8ff3666945..6aa4e77d45 100644
--- a/src/plugins/thirdParty/Python/CMakeLists.txt
+++ b/src/plugins/thirdParty/Python/CMakeLists.txt
@@ -459,7 +459,7 @@ set(PYTHON_LIBRARY ${ROOT_DIR}/${LIBRARY_DIR}/${IMPORT_LIBRARY} PARENT_SCOPE)
set(PYTHON_EXECUTABLE ${ROOT_DIR}/${PYTHON_EXECUTABLE} PARENT_SCOPE)
set(PYTHON_RELATIVE_SCRIPT_DIR ${SCRIPT_DIR} PARENT_SCOPE)
-set(PYTHON_SCRIPT_DIR ${ROOT_DIR}/${SCRIPT_DIR} PARENT_SCOPE)
+set(PYTHON_SCRIPT_DIR ${ROOT_DIR}/${SCRIPT_DIR} PARENT_SCOPE)
set(PYTHON_RELATIVE_RUNTIME_DIR ${RUNTIME_DIR} PARENT_SCOPE)