From 684f51836832ff5e49a9868bfadaafc39e95dba9 Mon Sep 17 00:00:00 2001 From: Dilawar Singh <dilawars@ncbs.res.in> Date: Sun, 9 Aug 2015 22:47:29 +0530 Subject: [PATCH] make uninstall still not workinng. --- CMakeLists.txt | 77 ++++++++++++++++++++++++++++++++------------------ README.md | 22 +++++++++------ data/moosegui | 2 +- 3 files changed, 64 insertions(+), 37 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index ccdeefbe..d72d8060 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,41 +1,62 @@ CMAKE_MINIMUM_REQUIRED(VERSION 2.8) -PROJECT(moose) - -## Default install prefix. When building packages, such as on launchpad, we need -## to modify installation prefix. -if(DEVELOPER) - option(CMAKE_INSTALL_PREFIX "Install prefix" ${CMAKE_BINARY_DIR}/_install) -else() - option(CMAKE_INSTALL_PREFIX "Install prefix" /usr) -endif() +PROJECT(moose-all) ## intialize paths set(MOOSE_CORE_DIR "${CMAKE_SOURCE_DIR}/moose-core") set(MOOSE_CORE_BUILD_DIR ${CMAKE_BINARY_DIR}/_build_moose_core) -set(MOOSE_CORE_INSTALL_DIR "${CMAKE_INSTALL_PREFIX}") +FILE(MAKE_DIRECTORY ${MOOSE_CORE_BUILD_DIR}) set(DATA_DIR ${CMAKE_SOURCE_DIR}/data) -include(ExternalProject) -message("[INFO] Installtion directory is ${CMAKE_INSTALL_PREFIX}") -ExternalProject_Add( moose-core - PREFIX ${CMAKE_CURRENT_BINARY_DIR}/__moose-core - SOURCE_DIR ${MOOSE_CORE_DIR} - # Extremely useful in packaging - #BINARY_DIR ${MOOSE_CORE_INSTALL_DIR} - CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=${CMAKE_INSTALL_PREFIX} - TEST_COMMAND ctest --output-on-failure - TEST_BEFORE_INSTALL 1 - BUILD_IN_SOURCE 0 -) +add_custom_command(OUTPUT __moose_core_built__ + COMMAND ${CMAKE_COMMAND} + -DCMAKE_INSTALL_PREFIX=${CMAKE_INSTALL_PREFIX} + -DDEBUG=OFF + ${MOOSE_CORE_DIR} + COMMAND $(MAKE) + WORKING_DIRECTORY ${MOOSE_CORE_BUILD_DIR} + VERBATIM + ) + +add_custom_target(moose-all ALL + DEPENDS __moose_core_built__ + ) + +install(CODE + " + execute_process(COMMAND ctest --output-on-failure + WORKING_DIRECTORY ${MOOSE_CORE_BUILD_DIR}) + + execute_process(COMMAND ${CMAKE_COMMAND} install + WORKING_DIRECTORY ${MOOSE_CORE_BUILD_DIR}) + " + ) ## moose-gui ## TODO: moose-gui should be a python module. set(MOOSE_GUI_DIR ${CMAKE_SOURCE_DIR}/moose-gui) -set(MOOSE_GUI_INSTALL_DIR ${CMAKE_INSTALL_PREFIX}/share/moose/gui) -add_custom_target(moose-gui ALL) -add_custom_command(TARGET moose-gui - POST_BUILD - COMMAND ${CMAKE_COMMAND} -E copy_directory ${MOOSE_GUI_DIR} ${MOOSE_GUI_INSTALL_DIR} - COMMAND ${CMAKE_COMMAND} -E copy ${DATA_DIR}/moosegui ${CMAKE_INSTALL_PREFIX}/bin/ + +install(DIRECTORY ${MOOSE_GUI_DIR} + PATTERN ".git" EXCLUDE + DESTINATION lib/moose/gui ) +install(PROGRAMS ${DATA_DIR}/moosegui + DESTINATION bin + ) + +## UNINSTALL +add_custom_target(uninstall + DEPENDS __uninstall_moose-core__ __uninstall_moose-gui__ + ) + +add_custom_command(OUTPUT __uninstall_moose-core__ + COMMAND make uninstall + WORKING_DIRECTORY ${MOOSE_CORE_BUILD_DIR} + ) + +add_custom_command(OUTPUT __uninstall_moose-gui__ + COMMAND ${CMAKE_COMMAND} -E remove_directory + ${CMAKE_INSTALL_PREFIX}/usr/lib/moose + COMMAND ${CMAKE_COMMAND} -R remove ${CMAKE_INSTALL_PREFIX}/bin/moosegui + WORKING_DIRECTORY ${CMAKE_BINARY_DIR} + ) diff --git a/README.md b/README.md index 9d5d0a97..82b47aca 100644 --- a/README.md +++ b/README.md @@ -5,11 +5,17 @@ python scripting interface and its GUI. For more details about these projects, read respective README files. -# Install - -~~~~ -./boostrap -cmake . -make -sudo make install -~~~~ +# Installation using cmake + +First, run the `bootstrap` script. It will fetch the submodules and/or update +them. You should have `cmake` installed on your system to build and install +moose from this repository. + + cmake . + make + sudo make install + +To uninstall moose, do the following in the same directory where you ran +previous `make install` command. + + sudo make uninstall diff --git a/data/moosegui b/data/moosegui index 4d8e95bd..2bd54687 100755 --- a/data/moosegui +++ b/data/moosegui @@ -1,2 +1,2 @@ #!/bin/bash -( cd /usr/share/moose/gui && python mgui.py ) +( cd /usr/lib/moose/gui && python mgui.py ) -- GitLab