Skip to content

Commit 5288d25

Browse files
authored
[All] Add GIT_REF option for external plugins (sofa-framework#4448)
* Add option git_ref to specify which branch to checkout * forgot about the projects
1 parent d3d20a1 commit 5288d25

20 files changed

+43
-37
lines changed

Sofa/framework/Config/cmake/SofaMacrosConfigure.cmake

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -187,7 +187,7 @@ endmacro()
187187
#
188188
function(sofa_add_generic_external directory name type)
189189
set(optionArgs FETCH_ONLY)
190-
set(oneValueArgs DEFAULT_VALUE WHEN_TO_SHOW VALUE_IF_HIDDEN)
190+
set(oneValueArgs DEFAULT_VALUE WHEN_TO_SHOW VALUE_IF_HIDDEN GIT_REF)
191191
set(multiValueArgs)
192192
cmake_parse_arguments("ARG" "${optionArgs}" "${oneValueArgs}" "${multiValueArgs}" ${ARGN})
193193

@@ -223,6 +223,11 @@ function(sofa_add_generic_external directory name type)
223223
if(${fetch_enabled})
224224
message("Fetching ${type_lower} ${name}")
225225

226+
if("${ARG_GIT_REF}" STREQUAL "")
227+
message(SEND_ERROR "One value argument GIT_REF is required when option EXTERNAL is set. This is the name of the branch or the tag checkouted when cloning the subdirectory.")
228+
return()
229+
endif()
230+
226231
if(NOT EXISTS ${fetched_dir})
227232
file(MAKE_DIRECTORY "${fetched_dir}/")
228233
endif()
@@ -275,7 +280,7 @@ endfunction()
275280

276281
macro(sofa_add_subdirectory type directory name)
277282
set(optionArgs EXTERNAL EXPERIMENTAL)
278-
set(oneValueArgs)
283+
set(oneValueArgs GIT_REF)
279284
set(multiValueArgs)
280285
cmake_parse_arguments("ARG" "${optionArgs}" "${oneValueArgs}" "${multiValueArgs}" ${ARGN})
281286

@@ -291,8 +296,9 @@ macro(sofa_add_subdirectory type directory name)
291296
set(default_value ON)
292297
endif()
293298

299+
294300
if(ARG_EXTERNAL)
295-
sofa_add_generic_external(${directory} ${name} "External ${type_lower}" DEFAULT_VALUE ${default_value} ${ARGN})
301+
sofa_add_generic_external(${directory} ${name} "External ${type_lower}" GIT_REF ${ARG_GIT_REF} DEFAULT_VALUE ${default_value} ${ARGN})
296302
else()
297303
sofa_add_generic(${directory} ${name} ${type_lower} DEFAULT_VALUE ${default_value} ${ARGN})
298304
endif()

applications/plugins/BeamAdapter/ExternalProjectConfig.cmake.in

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ cmake_minimum_required(VERSION 3.11)
33
include(ExternalProject)
44
ExternalProject_Add(BeamAdapter
55
GIT_REPOSITORY https://github.com/sofa-framework/BeamAdapter
6-
GIT_TAG origin/master
6+
GIT_TAG origin/@ARG_GIT_REF@
77
SOURCE_DIR "${CMAKE_SOURCE_DIR}/applications/plugins/BeamAdapter"
88
BINARY_DIR ""
99
CONFIGURE_COMMAND ""

applications/plugins/CGALPlugin/ExternalProjectConfig.cmake.in

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ cmake_minimum_required(VERSION 3.11)
33
include(ExternalProject)
44
ExternalProject_Add(CGALPlugin
55
GIT_REPOSITORY https://github.com/sofa-framework/CGALPlugin
6-
GIT_TAG origin/master
6+
GIT_TAG origin/@ARG_GIT_REF@
77
SOURCE_DIR "${CMAKE_SOURCE_DIR}/applications/plugins/CGALPlugin"
88
BINARY_DIR ""
99
CONFIGURE_COMMAND ""

applications/plugins/CMakeLists.txt

Lines changed: 15 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ endif()
99

1010
sofa_add_subdirectory(plugin CollisionOBBCapsule CollisionOBBCapsule)
1111

12-
sofa_add_subdirectory(directory SofaHighOrder SofaHighOrder EXTERNAL)
12+
sofa_add_subdirectory(directory SofaHighOrder SofaHighOrder EXTERNAL GIT_REF master)
1313

1414
sofa_add_subdirectory(plugin CImgPlugin CImgPlugin) # ON by default and first as it is used by other plugins.
1515
sofa_add_subdirectory(plugin ArticulatedSystemPlugin ArticulatedSystemPlugin ON)
@@ -22,15 +22,15 @@ sofa_add_subdirectory(plugin DiffusionSolver DiffusionSolver) # Depends on CImgP
2222
sofa_add_subdirectory(plugin image image) # Depends on CImgPlugin, DiffusionSolver, MultiThreading (soft)
2323
sofa_add_subdirectory(plugin SofaNewmat SofaNewmat)
2424

25-
sofa_add_subdirectory(directory SofaPython3 SofaPython3 EXTERNAL)
26-
sofa_add_subdirectory(plugin CGALPlugin CGALPlugin EXTERNAL) # Depends on image
27-
sofa_add_subdirectory(plugin Registration Registration EXTERNAL) # Depends on image, SofaPython, SofaGui and SofaDistanceGrid
25+
sofa_add_subdirectory(directory SofaPython3 SofaPython3 EXTERNAL GIT_REF master)
26+
sofa_add_subdirectory(plugin CGALPlugin CGALPlugin EXTERNAL GIT_REF master) # Depends on image
27+
sofa_add_subdirectory(plugin Registration Registration EXTERNAL GIT_REF master) # Depends on image, SofaPython, SofaGui and SofaDistanceGrid
2828
sofa_add_subdirectory(plugin BulletCollisionDetection BulletCollisionDetection) # Depends on Compliant and LMConstraint
2929
sofa_add_subdirectory(plugin ExternalBehaviorModel ExternalBehaviorModel OFF WHEN_TO_SHOW "SOFA_ENABLE_LEGACY_HEADERS" VALUE_IF_HIDDEN OFF)
30-
sofa_add_subdirectory(plugin InvertibleFVM InvertibleFVM EXTERNAL)
30+
sofa_add_subdirectory(plugin InvertibleFVM InvertibleFVM EXTERNAL GIT_REF master)
3131
sofa_add_subdirectory(plugin MeshSTEPLoader MeshSTEPLoader)
32-
sofa_add_subdirectory(plugin PluginExample PluginExample EXTERNAL)
33-
sofa_add_subdirectory(plugin ManifoldTopologies ManifoldTopologies EXTERNAL)
32+
sofa_add_subdirectory(plugin PluginExample PluginExample EXTERNAL GIT_REF master)
33+
sofa_add_subdirectory(plugin ManifoldTopologies ManifoldTopologies EXTERNAL GIT_REF master)
3434
sofa_add_subdirectory(plugin SixenseHydra SixenseHydra)
3535
sofa_add_subdirectory(plugin SofaOpenCL SofaOpenCL)
3636
sofa_add_subdirectory(plugin Xitact Xitact)
@@ -45,16 +45,16 @@ sofa_add_subdirectory(plugin LeapMotion LeapMotion)
4545
sofa_add_subdirectory(plugin Geomagic Geomagic)
4646
sofa_add_subdirectory(plugin SofaAssimp SofaAssimp) # ColladaSceneLoader Depends on Flexible and image
4747
sofa_add_subdirectory(plugin SofaMatrix SofaMatrix ON) # Depends on image, CImgPlugin
48-
sofa_add_subdirectory(plugin BeamAdapter BeamAdapter EXTERNAL)
49-
sofa_add_subdirectory(plugin STLIB STLIB EXTERNAL)
50-
sofa_add_subdirectory(plugin SoftRobots SoftRobots EXTERNAL)
51-
sofa_add_subdirectory(plugin CollisionAlgorithm CollisionAlgorithm EXTERNAL)
52-
sofa_add_subdirectory(plugin ConstraintGeometry ConstraintGeometry EXTERNAL)
53-
sofa_add_subdirectory(plugin ShapeMatchingPlugin ShapeMatchingPlugin EXTERNAL)
54-
sofa_add_subdirectory(plugin CSparseSolvers CSparseSolvers EXTERNAL)
48+
sofa_add_subdirectory(plugin BeamAdapter BeamAdapter EXTERNAL GIT_REF master)
49+
sofa_add_subdirectory(plugin STLIB STLIB EXTERNAL GIT_REF master)
50+
sofa_add_subdirectory(plugin SoftRobots SoftRobots EXTERNAL GIT_REF master)
51+
sofa_add_subdirectory(plugin CollisionAlgorithm CollisionAlgorithm EXTERNAL GIT_REF master)
52+
sofa_add_subdirectory(plugin ConstraintGeometry ConstraintGeometry EXTERNAL GIT_REF master)
53+
sofa_add_subdirectory(plugin ShapeMatchingPlugin ShapeMatchingPlugin EXTERNAL GIT_REF master)
54+
sofa_add_subdirectory(plugin CSparseSolvers CSparseSolvers EXTERNAL GIT_REF master)
5555

5656

57-
sofa_add_subdirectory(plugin PSL PSL EXTERNAL)
57+
sofa_add_subdirectory(plugin PSL PSL EXTERNAL GIT_REF master)
5858

5959
if((${CMAKE_CXX_COMPILER_ID} STREQUAL "GNU") AND (${CMAKE_SYSTEM_NAME} MATCHES "Linux"))
6060
sofa_add_subdirectory(plugin SofaPardisoSolver SofaPardisoSolver) # SofaPardisoSolver is only available under linux with gcc

applications/plugins/CSparseSolvers/ExternalProjectConfig.cmake.in

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ cmake_minimum_required(VERSION 3.11)
33
include(ExternalProject)
44
ExternalProject_Add(CSparseSolvers
55
GIT_REPOSITORY https://github.com/sofa-framework/CSparseSolvers
6-
GIT_TAG origin/master
6+
GIT_TAG origin/@ARG_GIT_REF@
77
SOURCE_DIR "${CMAKE_SOURCE_DIR}/applications/plugins/CSparseSolvers"
88
BINARY_DIR ""
99
CONFIGURE_COMMAND ""

applications/plugins/CollisionAlgorithm/ExternalProjectConfig.cmake.in

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ cmake_minimum_required(VERSION 3.11)
33
include(ExternalProject)
44
ExternalProject_Add(CollisionAlgorithm
55
GIT_REPOSITORY https://github.com/courtecuisse/CollisionAlgorithm.git
6-
GIT_TAG origin/master
6+
GIT_TAG origin/@ARG_GIT_REF@
77
SOURCE_DIR "${CMAKE_SOURCE_DIR}/applications/plugins/CollisionAlgorithm"
88
BINARY_DIR ""
99
CONFIGURE_COMMAND ""

applications/plugins/ConstraintGeometry/ExternalProjectConfig.cmake.in

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ cmake_minimum_required(VERSION 3.11)
33
include(ExternalProject)
44
ExternalProject_Add(ConstraintGeometry
55
GIT_REPOSITORY https://github.com/courtecuisse/ConstraintGeometry.git
6-
GIT_TAG origin/master
6+
GIT_TAG origin/@ARG_GIT_REF@
77
SOURCE_DIR "${CMAKE_SOURCE_DIR}/applications/plugins/ConstraintGeometry"
88
BINARY_DIR ""
99
CONFIGURE_COMMAND ""

applications/plugins/InvertibleFVM/ExternalProjectConfig.cmake.in

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ cmake_minimum_required(VERSION 2.8.2)
33
include(ExternalProject)
44
ExternalProject_Add(InvertibleFVM
55
GIT_REPOSITORY https://github.com/sofa-framework/InvertibleFVM
6-
GIT_TAG origin/master
6+
GIT_TAG origin/@ARG_GIT_REF@
77
SOURCE_DIR "${CMAKE_SOURCE_DIR}/applications/plugins/InvertibleFVM"
88
BINARY_DIR ""
99
CONFIGURE_COMMAND ""

applications/plugins/ManifoldTopologies/ExternalProjectConfig.cmake.in

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ cmake_minimum_required(VERSION 3.11)
33
include(ExternalProject)
44
ExternalProject_Add(ManifoldTopologies
55
GIT_REPOSITORY https://github.com/sofa-framework/ManifoldTopologies
6-
GIT_TAG origin/master
6+
GIT_TAG origin/@ARG_GIT_REF@
77
SOURCE_DIR "${CMAKE_SOURCE_DIR}/applications/plugins/ManifoldTopologies"
88
BINARY_DIR ""
99
CONFIGURE_COMMAND ""

applications/plugins/PSL/ExternalProjectConfig.cmake.in

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ cmake_minimum_required(VERSION 3.11)
33
include(ExternalProject)
44
ExternalProject_Add(PSL
55
GIT_REPOSITORY https://github.com/sofa-framework/PSL
6-
GIT_TAG origin/master
6+
GIT_TAG origin/@ARG_GIT_REF@
77
SOURCE_DIR "${CMAKE_SOURCE_DIR}/applications/plugins/PSL"
88
BINARY_DIR ""
99
CONFIGURE_COMMAND ""

applications/plugins/PluginExample/ExternalProjectConfig.cmake.in

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ cmake_minimum_required(VERSION 3.11)
33
include(ExternalProject)
44
ExternalProject_Add(PluginExample
55
GIT_REPOSITORY https://github.com/sofa-framework/PluginExample
6-
GIT_TAG origin/master
6+
GIT_TAG origin/@ARG_GIT_REF@
77
SOURCE_DIR "${CMAKE_SOURCE_DIR}/applications/plugins/PluginExample"
88
BINARY_DIR ""
99
CONFIGURE_COMMAND ""

applications/plugins/Registration/ExternalProjectConfig.cmake.in

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ cmake_minimum_required(VERSION 3.11)
33
include(ExternalProject)
44
ExternalProject_Add(Registration
55
GIT_REPOSITORY https://github.com/sofa-framework/Registration
6-
GIT_TAG origin/master
6+
GIT_TAG origin/@ARG_GIT_REF@
77
SOURCE_DIR "${CMAKE_SOURCE_DIR}/applications/plugins/Registration"
88
BINARY_DIR ""
99
CONFIGURE_COMMAND ""

applications/plugins/STLIB/ExternalProjectConfig.cmake.in

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ cmake_minimum_required(VERSION 3.11)
33
include(ExternalProject)
44
ExternalProject_Add(STLIB
55
GIT_REPOSITORY https://github.com/SofaDefrost/STLIB
6-
GIT_TAG origin/master
6+
GIT_TAG origin/@ARG_GIT_REF@
77
SOURCE_DIR "${CMAKE_SOURCE_DIR}/applications/plugins/STLIB"
88
BINARY_DIR ""
99
CONFIGURE_COMMAND ""

applications/plugins/ShapeMatchingPlugin/ExternalProjectConfig.cmake.in

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ cmake_minimum_required(VERSION 3.11)
33
include(ExternalProject)
44
ExternalProject_Add(ShapeMatchingPlugin
55
GIT_REPOSITORY https://github.com/sofa-framework/ShapeMatchingPlugin
6-
GIT_TAG origin/master
6+
GIT_TAG origin/@ARG_GIT_REF@
77
SOURCE_DIR "${CMAKE_SOURCE_DIR}/applications/plugins/ShapeMatchingPlugin"
88
BINARY_DIR ""
99
CONFIGURE_COMMAND ""

applications/plugins/SofaHighOrder/ExternalProjectConfig.cmake.in

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ cmake_minimum_required(VERSION 2.8.2)
33
include(ExternalProject)
44
ExternalProject_Add(SofaHighOrder
55
GIT_REPOSITORY https://github.com/sofa-framework/SofaHighOrder
6-
GIT_TAG origin/master
6+
GIT_TAG origin/@ARG_GIT_REF@
77
SOURCE_DIR "${CMAKE_SOURCE_DIR}/applications/plugins/SofaHighOrder"
88
BINARY_DIR ""
99
CONFIGURE_COMMAND ""

applications/plugins/SofaPython3/ExternalProjectConfig.cmake.in

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ cmake_minimum_required(VERSION 3.11)
33
include(ExternalProject)
44
ExternalProject_Add(SofaPython3
55
GIT_REPOSITORY https://github.com/sofa-framework/SofaPython3
6-
GIT_TAG origin/master
6+
GIT_TAG origin/@ARG_GIT_REF@
77
SOURCE_DIR "${CMAKE_SOURCE_DIR}/applications/plugins/SofaPython3"
88
BINARY_DIR ""
99
CONFIGURE_COMMAND ""

applications/plugins/SoftRobots/ExternalProjectConfig.cmake.in

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ cmake_minimum_required(VERSION 3.11)
33
include(ExternalProject)
44
ExternalProject_Add(SoftRobots
55
GIT_REPOSITORY https://github.com/SofaDefrost/SoftRobots
6-
GIT_TAG origin/master
6+
GIT_TAG origin/@ARG_GIT_REF@
77
SOURCE_DIR "${CMAKE_SOURCE_DIR}/applications/plugins/SoftRobots"
88
BINARY_DIR ""
99
CONFIGURE_COMMAND ""

applications/projects/CMakeLists.txt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ sofa_add_subdirectory(application SofaGuiGlut SofaGuiGlut OFF)
1313
sofa_add_subdirectory(application runSofa runSofa ON)
1414
sofa_add_subdirectory(application sofaOPENCL sofaOPENCL OFF)
1515

16-
sofa_add_subdirectory(directory Regression Regression EXTERNAL)
17-
sofa_add_subdirectory(directory SofaGLFW SofaGLFW EXTERNAL)
16+
sofa_add_subdirectory(directory Regression Regression EXTERNAL GIT_REF master)
17+
sofa_add_subdirectory(directory SofaGLFW SofaGLFW EXTERNAL GIT_REF master)
1818
sofa_add_subdirectory(application sofaProjectExample sofaProjectExample)
1919
sofa_add_subdirectory(application sofaInfo sofaInfo)

applications/projects/Regression/ExternalProjectConfig.cmake.in

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ cmake_minimum_required(VERSION 2.8.2)
33
include(ExternalProject)
44
ExternalProject_Add(Regression
55
GIT_REPOSITORY https://github.com/sofa-framework/regression
6-
GIT_TAG origin/master
6+
GIT_TAG origin/@ARG_GIT_REF@
77
SOURCE_DIR "${CMAKE_SOURCE_DIR}/applications/projects/Regression"
88
BINARY_DIR ""
99
CONFIGURE_COMMAND ""

applications/projects/SofaGLFW/ExternalProjectConfig.cmake.in

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ cmake_minimum_required(VERSION 3.11)
33
include(ExternalProject)
44
ExternalProject_Add(SofaGLFW
55
GIT_REPOSITORY https://github.com/sofa-framework/SofaGLFW
6-
GIT_TAG origin/master
6+
GIT_TAG origin/@ARG_GIT_REF@
77
SOURCE_DIR "${CMAKE_SOURCE_DIR}/applications/projects/SofaGLFW"
88
BINARY_DIR ""
99
CONFIGURE_COMMAND ""

0 commit comments

Comments
 (0)