From 7f1a95fd74a748afc05fab554f6651f6d2cccce1 Mon Sep 17 00:00:00 2001 From: Dilawar Singh <dilawars@ncbs.res.in> Date: Tue, 31 Oct 2017 18:08:25 +0530 Subject: [PATCH] GUI is optional. --- CMakeLists.txt | 106 +++++++++++++++++++++++++++++-------------------- 1 file changed, 63 insertions(+), 43 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index ad7e56e1..117041c9 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -26,10 +26,14 @@ option(WITH_DOC "Build documentation" OFF) option(DEBUG "Build with DEBUG support" OFF) option(WITH_BOOST "Use Boost libraries instead of GSL" OFF) option(WITH_CUDA "Use CUDA/GPU" OFF) -option(WITH_MPI "Use MPI" OFF) +option(WITH_MPI "Use MPI (experimental)" OFF) +option(WITH_GUI "Install moose-gui. Works only with python2." ON ) # Required packages. find_package(PythonInterp REQUIRED) +if(PYTHON_VERSION_MAJOR VERSION_EQUAL 3) + set(WITH_GUI OFF) +endif( ) add_custom_target(moose ALL) @@ -38,8 +42,10 @@ set(PYMOOSE_SOURCE_DIR "${CMAKE_SOURCE_DIR}/moose-core") set(PYMOOSE_BUILD_DIR ${CMAKE_BINARY_DIR}/__moose-core_build) set(PYMOOSE_INSTALL_DIR ${CMAKE_BINARY_DIR}/__moose-core_install) -set(MOOSE_GUI_DIR ${CMAKE_SOURCE_DIR}/moose-gui) -set(MOOSE_GUI_INSTALL_DIR ${CMAKE_BINARY_DIR}/__moose-gui_install) +if(WITH_GUI) + set(MOOSE_GUI_DIR ${CMAKE_SOURCE_DIR}/moose-gui) + set(MOOSE_GUI_INSTALL_DIR ${CMAKE_BINARY_DIR}/__moose-gui_install) +endif() set(MOOSE_EXAMPLE_DIR ${CMAKE_SOURCE_DIR}/moose-examples) set(MOOSE_EXAMPLE_INSTALL_DIR ${CMAKE_BINARY_DIR}/__moose-examples_install) @@ -60,23 +66,29 @@ add_custom_command( OUTPUT ${OUTPUT_MOOSEBIN} VERBATIM ) -# Now build moose-gui and moose-examples. -# Make sure each script is compilable. Else report an error. -add_custom_target( gui ALL - COMMAND ${CMAKE_COMMAND} -E copy_directory ${MOOSE_GUI_DIR} ${MOOSE_GUI_INSTALL_DIR} - COMMAND ${PYTHON_EXECUTABLE} -m compileall -q ${MOOSE_GUI_INSTALL_DIR} - COMMENT "Building moose-gui" - VERBATIM - ) +if(WITH_GUI) + # Now build moose-gui and moose-examples. + # Make sure each script is compilable. Else report an error. + add_custom_target( gui ALL + COMMAND ${CMAKE_COMMAND} -E copy_directory ${MOOSE_GUI_DIR} ${MOOSE_GUI_INSTALL_DIR} + COMMAND ${PYTHON_EXECUTABLE} -m compileall -q ${MOOSE_GUI_INSTALL_DIR} + COMMENT "Building moose-gui" + VERBATIM + ) -add_custom_target( examples ALL - COMMAND ${CMAKE_COMMAND} -E copy_directory ${MOOSE_EXAMPLE_DIR} ${MOOSE_EXAMPLE_INSTALL_DIR} - COMMAND ${PYTHON_EXECUTABLE} -m compileall -q ${MOOSE_EXAMPLE_INSTALL_DIR} - VERBATIM - ) + add_custom_target( examples ALL + COMMAND ${CMAKE_COMMAND} -E copy_directory ${MOOSE_EXAMPLE_DIR} ${MOOSE_EXAMPLE_INSTALL_DIR} + COMMAND ${PYTHON_EXECUTABLE} -m compileall -q ${MOOSE_EXAMPLE_INSTALL_DIR} + VERBATIM + ) +endif() + +add_dependencies(moose moose-core) -add_dependencies(moose moose-core gui examples) -add_dependencies(examples gui) +if(WITH_GUI) + add_dependencies(moose gui examples) + add_dependencies(examples gui) +endif() ## moose-gui @@ -89,27 +101,30 @@ install(DIRECTORY ${PYMOOSE_INSTALL_DIR}/ PATTERN "*.pyc" EXCLUDE ) -install(DIRECTORY ${MOOSE_GUI_INSTALL_DIR}/ - DESTINATION lib/moose/gui - PATTERN ".git*" EXCLUDE - PATTERN "*.pyc" EXCLUDE - ) - -install(DIRECTORY ${MOOSE_EXAMPLE_DIR}/ - DESTINATION lib/moose/moose-examples - PATTERN ".git*" EXCLUDE - PATTERN "_travis*" EXCLUDE - PATTERN ".travis*" EXCLUDE - PATTERN "*.pyc" EXCLUDE - ) +if(WITH_GUI) + install(DIRECTORY ${MOOSE_GUI_INSTALL_DIR}/ + DESTINATION lib/moose/gui + PATTERN ".git*" EXCLUDE + PATTERN "*.pyc" EXCLUDE + ) + + install(DIRECTORY ${MOOSE_EXAMPLE_DIR}/ + DESTINATION lib/moose/moose-examples + PATTERN ".git*" EXCLUDE + PATTERN "_travis*" EXCLUDE + PATTERN ".travis*" EXCLUDE + PATTERN "*.pyc" EXCLUDE + ) +endif() configure_file( ${CMAKE_SOURCE_DIR}/cmake/moose.in ${CMAKE_BINARY_DIR}/moose ) install(PROGRAMS ${CMAKE_BINARY_DIR}/moose DESTINATION bin) ## UNINSTALL -add_custom_target(uninstall - DEPENDS __uninstall_moose-core__ __uninstall_moose-gui__ - ) +add_custom_target(uninstall DEPENDS __uninstall_moose-core__ ) +if(WITH_GUI) + add_dependencies( uninstall __uninstall_moose-gui__ ) +endif( ) add_custom_command(OUTPUT __uninstall_moose-core__ COMMAND xargs rm -rf < install_manifest.txt @@ -117,11 +132,13 @@ add_custom_command(OUTPUT __uninstall_moose-core__ COMMAND ${CMAKE_COMMAND} -E remove ${CMAKE_INSTALL_PREFIX}/bin/moose.bin ) -add_custom_command(OUTPUT __uninstall_moose-gui__ - COMMAND ${CMAKE_COMMAND} -E remove_directory - ${CMAKE_INSTALL_PREFIX}/lib/moose/gui - COMMAND ${CMAKE_COMMAND} -E remove ${CMAKE_INSTALL_PREFIX}/bin/moose - ) +if(WITH_GUI) + add_custom_command(OUTPUT __uninstall_moose-gui__ + COMMAND ${CMAKE_COMMAND} -E remove_directory + ${CMAKE_INSTALL_PREFIX}/lib/moose/gui + COMMAND ${CMAKE_COMMAND} -E remove ${CMAKE_INSTALL_PREFIX}/bin/moose + ) +endif() ################################################################################ # CTEST @@ -130,10 +147,13 @@ enable_testing( ) add_test( NAME test_pymoose_sanity COMMAND ${PYTHON_EXECUTABLE} -c "import moose" ) -add_test( NAME test_gui_sanity - COMMAND ${PYTHON_EXECUTABLE} ${MOOSE_GUI_INSTALL_DIR}/mgui.py - WORKING_DIRECTORY ${MOOSE_GUI_INSTALL_DIR} - ) + +if(WITH_GUI) + add_test( NAME test_gui_sanity + COMMAND ${PYTHON_EXECUTABLE} ${MOOSE_GUI_INSTALL_DIR}/mgui.py + WORKING_DIRECTORY ${MOOSE_GUI_INSTALL_DIR} + ) +endif() set_tests_properties( test_pymoose_sanity PROPERTIES ENVIRONMENT "PYTHONPATH=${PYMOOSE_BUILD_DIR}/python" -- GitLab