From abd0bc56e055de1d0e1e829e1f077229d7c51758 Mon Sep 17 00:00:00 2001
From: Guilhem Saurel <guilhem.saurel@laas.fr>
Date: Mon, 16 Sep 2019 13:20:08 +0200
Subject: [PATCH] [CMake] add INSTALL_PYTHON_INTERFACE_ONLY option

---
 CMakeLists.txt     |  8 +++++---
 src/CMakeLists.txt | 10 +++++++---
 2 files changed, 12 insertions(+), 6 deletions(-)

diff --git a/CMakeLists.txt b/CMakeLists.txt
index eaa427d..1f1f468 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -22,9 +22,10 @@ INCLUDE(cmake/lapack.cmake)
 INCLUDE(cmake/cpack.cmake)
 INCLUDE(cmake/python.cmake)
 
+SET(PROJECT_NAMESPACE stack-of-tasks)
 SET(PROJECT_NAME sot-dyninv)
 SET(PROJECT_DESCRIPTION "control by inverse dynamics.")
-SET(PROJECT_URL "http://github.com/stack-of-tasks/sot-dyninv")
+SET(PROJECT_URL "http://github.com/${PROJECT_NAMESPACE}/${PROJECT_NAME}")
 
 SET(CUSTOM_HEADER_DIR "${PROJECT_NAME}")
 SET(DOXYGEN_USE_MATHJAX YES)
@@ -38,6 +39,9 @@ SET(PKG_CONFIG_ADDITIONAL_VARIABLES
   plugindir
   )
 
+OPTION(BUILD_PYTHON_INTERFACE "Build the python bindings" ON)
+OPTION(INSTALL_PYTHON_INTERFACE_ONLY "Install *ONLY* the python bindings" OFF)
+
 SETUP_PROJECT()
 
 # Search for dependencies.
@@ -136,7 +140,6 @@ foreach(lib solver-op-space solver-dyn-reduced solver-dyn-red2)
 	ENDIF(WIN32)
 endforeach(lib)
 
-OPTION(BUILD_PYTHON_INTERFACE "Build the python bindings" ON)
 IF(BUILD_PYTHON_INTERFACE)
   FINDPYTHON()
   FIND_NUMPY()
@@ -150,4 +153,3 @@ ADD_SUBDIRECTORY(python)
 ADD_SUBDIRECTORY(unitTesting)
 
 SETUP_PROJECT_FINALIZE()
-SETUP_PROJECT_CPACK()
diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
index a4412b1..46ce576 100644
--- a/src/CMakeLists.txt
+++ b/src/CMakeLists.txt
@@ -30,8 +30,10 @@ FOREACH(header ${headers})
   ELSE(WIN32)
   execute_process(COMMAND ${CMAKE_COMMAND} -E create_symlink ${src_path} ${bin_path} )
   ENDIF(WIN32)
-  install(FILES ${src_path} DESTINATION ${install_path}
-          PERMISSIONS OWNER_READ GROUP_READ WORLD_READ OWNER_WRITE)
+  IF(NOT INSTALL_PYTHON_INTERFACE_ONLY)
+    install(FILES ${src_path} DESTINATION ${install_path}
+            PERMISSIONS OWNER_READ GROUP_READ WORLD_READ OWNER_WRITE)
+  ENDIF(NOT INSTALL_PYTHON_INTERFACE_ONLY)
 ENDFOREACH(header)
 INCLUDE_DIRECTORIES(${CMAKE_BINARY_DIR}/include)
 
@@ -56,7 +58,9 @@ FOREACH(lib ${libs})
   PKG_CONFIG_USE_DEPENDENCY(${lib} dynamic-graph)
   PKG_CONFIG_USE_DEPENDENCY(${lib} soth)
 
-  INSTALL(TARGETS ${lib} DESTINATION ${DYNAMIC_GRAPH_PLUGINDIR})
+  IF(NOT INSTALL_PYTHON_INTERFACE_ONLY)
+    INSTALL(TARGETS ${lib} DESTINATION ${DYNAMIC_GRAPH_PLUGINDIR})
+  ENDIF(NOT INSTALL_PYTHON_INTERFACE_ONLY)
   # build python submodule
   IF(BUILD_PYTHON_INTERFACE)
     STRING(REPLACE - _ PYTHON_LIBRARY_NAME ${lib})
-- 
GitLab