From a3707ae80672d47a26c3132f7b2723241ac526c1 Mon Sep 17 00:00:00 2001
From: Florian Walch <florian.walch@franka.de>
Date: Tue, 10 Oct 2017 09:59:46 +0200
Subject: [PATCH] CMake: Do not depend on ClangTools

Allows out-of-workspace builds.
---
 franka_control/CMakeLists.txt             | 28 ++++++++++++-----------
 franka_example_controllers/CMakeLists.txt | 26 +++++++++++----------
 franka_gripper/CMakeLists.txt             | 28 ++++++++++++-----------
 franka_hw/CMakeLists.txt                  | 26 +++++++++++----------
 franka_visualization/CMakeLists.txt       | 28 ++++++++++++-----------
 5 files changed, 73 insertions(+), 63 deletions(-)

diff --git a/franka_control/CMakeLists.txt b/franka_control/CMakeLists.txt
index 1619f28..7b47fdd 100644
--- a/franka_control/CMakeLists.txt
+++ b/franka_control/CMakeLists.txt
@@ -1,8 +1,6 @@
 cmake_minimum_required(VERSION 2.8.3)
 project(franka_control)
 
-list(INSERT CMAKE_MODULE_PATH 0 ${CMAKE_CURRENT_SOURCE_DIR}/../cmake)
-
 set(CMAKE_CXX_STANDARD 14)
 set(CMAKE_CXX_STANDARD_REQUIRED ON)
 
@@ -142,14 +140,18 @@ install(FILES franka_controller_plugins.xml
 )
 
 ## Tools
-file(GLOB_RECURSE SOURCES ${CMAKE_CURRENT_SOURCE_DIR}/src/*.cpp)
-file(GLOB_RECURSE HEADERS
-  ${CMAKE_CURRENT_SOURCE_DIR}/include/*.h
-  ${CMAKE_CURRENT_SOURCE_DIR}/src/*.h
-)
-include(ClangTools)
-add_format_target(franka_control FILES ${SOURCES} ${HEADERS})
-add_tidy_target(franka_control
-  FILES ${SOURCES}
-  DEPENDS franka_control_node franka_state_controller
-)
+include(${CMAKE_CURRENT_LIST_DIR}/../cmake/ClangTools.cmake OPTIONAL
+  RESULT_VARIABLE CLANG_TOOLS
+)
+if(CLANG_TOOLS)
+  file(GLOB_RECURSE SOURCES ${CMAKE_CURRENT_SOURCE_DIR}/src/*.cpp)
+  file(GLOB_RECURSE HEADERS
+    ${CMAKE_CURRENT_SOURCE_DIR}/include/*.h
+    ${CMAKE_CURRENT_SOURCE_DIR}/src/*.h
+  )
+  add_format_target(franka_control FILES ${SOURCES} ${HEADERS})
+  add_tidy_target(franka_control
+    FILES ${SOURCES}
+    DEPENDS franka_control_node franka_state_controller
+  )
+endif()
diff --git a/franka_example_controllers/CMakeLists.txt b/franka_example_controllers/CMakeLists.txt
index 31f665a..ce69de0 100644
--- a/franka_example_controllers/CMakeLists.txt
+++ b/franka_example_controllers/CMakeLists.txt
@@ -65,16 +65,18 @@ install(FILES franka_example_controllers_plugin.xml
 )
 
 ## Tools
-file(GLOB_RECURSE SOURCES ${CMAKE_CURRENT_SOURCE_DIR}/src/*.cpp)
-file(GLOB_RECURSE HEADERS
-  ${CMAKE_CURRENT_SOURCE_DIR}/include/*.h
-  ${CMAKE_CURRENT_SOURCE_DIR}/src/*.h
-)
-
-list(INSERT CMAKE_MODULE_PATH 0 ${CMAKE_CURRENT_SOURCE_DIR}/../cmake)
-include(ClangTools)
-add_format_target(franka_example_controllers FILES ${SOURCES} ${HEADERS})
-add_tidy_target(franka_example_controllers
-  FILES ${SOURCES}
-  DEPENDS franka_example_controllers
+include(${CMAKE_CURRENT_LIST_DIR}/../cmake/ClangTools.cmake OPTIONAL
+  RESULT_VARIABLE CLANG_TOOLS
 )
+if(CLANG_TOOLS)
+  file(GLOB_RECURSE SOURCES ${CMAKE_CURRENT_SOURCE_DIR}/src/*.cpp)
+  file(GLOB_RECURSE HEADERS
+    ${CMAKE_CURRENT_SOURCE_DIR}/include/*.h
+    ${CMAKE_CURRENT_SOURCE_DIR}/src/*.h
+  )
+  add_format_target(franka_example_controllers FILES ${SOURCES} ${HEADERS})
+  add_tidy_target(franka_example_controllers
+    FILES ${SOURCES}
+    DEPENDS franka_example_controllers
+  )
+endif()
diff --git a/franka_gripper/CMakeLists.txt b/franka_gripper/CMakeLists.txt
index 58e3677..c93a498 100644
--- a/franka_gripper/CMakeLists.txt
+++ b/franka_gripper/CMakeLists.txt
@@ -1,8 +1,6 @@
 cmake_minimum_required(VERSION 2.8.3)
 project(franka_gripper)
 
-list(INSERT CMAKE_MODULE_PATH 0 ${CMAKE_CURRENT_SOURCE_DIR}/../cmake)
-
 set(CMAKE_CXX_STANDARD 14)
 set(CMAKE_CXX_STANDARD_REQUIRED ON)
 
@@ -99,14 +97,18 @@ install(DIRECTORY config
 )
 
 ## Tools
-file(GLOB_RECURSE SOURCES ${CMAKE_CURRENT_SOURCE_DIR}/src/*.cpp)
-file(GLOB_RECURSE HEADERS
-  ${CMAKE_CURRENT_SOURCE_DIR}/include/*.h
-  ${CMAKE_CURRENT_SOURCE_DIR}/src/*.h
-)
-include(ClangTools)
-add_format_target(franka_gripper FILES ${SOURCES} ${HEADERS})
-add_tidy_target(franka_gripper
-  FILES ${SOURCES}
-  DEPENDS franka_gripper franka_gripper_node
-)
+include(${CMAKE_CURRENT_LIST_DIR}/../cmake/ClangTools.cmake OPTIONAL
+  RESULT_VARIABLE CLANG_TOOLS
+)
+if(CLANG_TOOLS)
+  file(GLOB_RECURSE SOURCES ${CMAKE_CURRENT_SOURCE_DIR}/src/*.cpp)
+  file(GLOB_RECURSE HEADERS
+    ${CMAKE_CURRENT_SOURCE_DIR}/include/*.h
+    ${CMAKE_CURRENT_SOURCE_DIR}/src/*.h
+  )
+  add_format_target(franka_gripper FILES ${SOURCES} ${HEADERS})
+  add_tidy_target(franka_gripper
+    FILES ${SOURCES}
+    DEPENDS franka_gripper franka_gripper_node
+  )
+endif()
diff --git a/franka_hw/CMakeLists.txt b/franka_hw/CMakeLists.txt
index 3d5c68a..cefe07c 100644
--- a/franka_hw/CMakeLists.txt
+++ b/franka_hw/CMakeLists.txt
@@ -1,8 +1,6 @@
 cmake_minimum_required(VERSION 2.8.3)
 project(franka_hw)
 
-list(INSERT CMAKE_MODULE_PATH 0 ${CMAKE_CURRENT_SOURCE_DIR}/../cmake)
-
 set(CMAKE_CXX_STANDARD 14)
 set(CMAKE_CXX_STANDARD_REQUIRED ON)
 
@@ -60,14 +58,18 @@ if(CATKIN_ENABLE_TESTING)
 endif()
 
 ## Tools
-file(GLOB_RECURSE SOURCES ${CMAKE_CURRENT_SOURCE_DIR}/src/*.cpp)
-file(GLOB_RECURSE HEADERS
-  ${CMAKE_CURRENT_SOURCE_DIR}/include/*.h
-  ${CMAKE_CURRENT_SOURCE_DIR}/src/*.h
-)
-include(ClangTools)
-add_format_target(franka_hw FILES ${SOURCES} ${HEADERS})
-add_tidy_target(franka_hw
-  FILES ${SOURCES}
-  DEPENDS franka_hw
+include(${CMAKE_CURRENT_LIST_DIR}/../cmake/ClangTools.cmake OPTIONAL
+  RESULT_VARIABLE CLANG_TOOLS
 )
+if(CLANG_TOOLS)
+  file(GLOB_RECURSE SOURCES ${CMAKE_CURRENT_SOURCE_DIR}/src/*.cpp)
+  file(GLOB_RECURSE HEADERS
+    ${CMAKE_CURRENT_SOURCE_DIR}/include/*.h
+    ${CMAKE_CURRENT_SOURCE_DIR}/src/*.h
+  )
+  add_format_target(franka_hw FILES ${SOURCES} ${HEADERS})
+  add_tidy_target(franka_hw
+    FILES ${SOURCES}
+    DEPENDS franka_hw
+  )
+endif()
diff --git a/franka_visualization/CMakeLists.txt b/franka_visualization/CMakeLists.txt
index 5188fc6..e5ffe18 100644
--- a/franka_visualization/CMakeLists.txt
+++ b/franka_visualization/CMakeLists.txt
@@ -1,8 +1,6 @@
 cmake_minimum_required(VERSION 2.8.3)
 project(franka_visualization)
 
-list(INSERT CMAKE_MODULE_PATH 0 ${CMAKE_CURRENT_SOURCE_DIR}/../cmake)
-
 set(CMAKE_CXX_STANDARD 14)
 set(CMAKE_CXX_STANDARD_REQUIRED ON)
 
@@ -44,14 +42,18 @@ install(DIRECTORY config
 )
 
 ## Tools
-file(GLOB_RECURSE SOURCES ${CMAKE_CURRENT_SOURCE_DIR}/src/*.cpp)
-file(GLOB_RECURSE HEADERS
-  ${CMAKE_CURRENT_SOURCE_DIR}/include/*.h
-  ${CMAKE_CURRENT_SOURCE_DIR}/src/*.h
-)
-include(ClangTools)
-add_format_target(franka_visualization FILES ${SOURCES} ${HEADERS})
-add_tidy_target(franka_visualization
-  FILES ${SOURCES}
-  DEPENDS franka_joint_state_publisher
-)
+include(${CMAKE_CURRENT_LIST_DIR}/../cmake/ClangTools.cmake OPTIONAL
+  RESULT_VARIABLE CLANG_TOOLS
+)
+if(CLANG_TOOLS)
+  file(GLOB_RECURSE SOURCES ${CMAKE_CURRENT_SOURCE_DIR}/src/*.cpp)
+  file(GLOB_RECURSE HEADERS
+    ${CMAKE_CURRENT_SOURCE_DIR}/include/*.h
+    ${CMAKE_CURRENT_SOURCE_DIR}/src/*.h
+  )
+  add_format_target(franka_visualization FILES ${SOURCES} ${HEADERS})
+  add_tidy_target(franka_visualization
+    FILES ${SOURCES}
+    DEPENDS franka_joint_state_publisher
+  )
+endif()
-- 
GitLab