(Background is issue #18622) CMake errors out when the Kuka files are removed with: ``` CMake Error at cMake/FreeCadMacros.cmake:79 (ADD_CUSTOM_COMMAND): ADD_CUSTOM_COMMAND called with wrong number of arguments. Call Stack (most recent call first): src/Mod/Robot/CMakeLists.txt:47 (fc_target_copy_resource) ``` The problem is that while the CMake code checks whether /src/Mod/Robot/Lib/Kuka is there befor setting Robot_Resources, but then later still uses the variable, even if it hasn't been set. The patch just guards the failing fc_target_copy_resource with another if that checks whether the variable has been defined. CMake install would also fail when Lib is empty, so another guard is required for the `INSTALL( DIRECTORY Lib` … section.
72 lines
1.4 KiB
CMake
72 lines
1.4 KiB
CMake
|
|
add_subdirectory(App)
|
|
if(BUILD_GUI)
|
|
add_subdirectory(Gui)
|
|
endif(BUILD_GUI)
|
|
|
|
set(Robot_Scripts
|
|
Init.py
|
|
KukaExporter.py
|
|
RobotExample.py
|
|
RobotExampleTrajectoryOutOfShapes.py
|
|
)
|
|
|
|
if(BUILD_GUI)
|
|
list (APPEND Robot_Scripts
|
|
InitGui.py
|
|
MovieTool.py
|
|
)
|
|
endif(BUILD_GUI)
|
|
|
|
if (EXISTS ${CMAKE_SOURCE_DIR}/src/Mod/Robot/Lib/Kuka)
|
|
SET(Robot_Resources
|
|
Lib/Kuka/kr500_1.wrl
|
|
Lib/Kuka/kr500_1.csv
|
|
Lib/Kuka/kr_500_2.pdf
|
|
Lib/Kuka/kr210.WRL
|
|
Lib/Kuka/kr_210_2.csv
|
|
Lib/Kuka/kr_210_2.pdf
|
|
Lib/Kuka/kr16.wrl
|
|
Lib/Kuka/kr_16.csv
|
|
Lib/Kuka/kr_16.pdf
|
|
Lib/Kuka/kr125_3.wrl
|
|
Lib/Kuka/kr_125.csv
|
|
Lib/Kuka/kr125_2.pdf
|
|
)
|
|
endif ()
|
|
|
|
add_custom_target(RobotScripts ALL
|
|
SOURCES ${Robot_Scripts} ${Robot_Resources}
|
|
)
|
|
|
|
fc_target_copy_resource(RobotScripts
|
|
${CMAKE_CURRENT_SOURCE_DIR}
|
|
${CMAKE_BINARY_DIR}/Mod/Robot
|
|
${Robot_Scripts})
|
|
|
|
if (DEFINED Robot_Resources)
|
|
fc_target_copy_resource(RobotScripts
|
|
${CMAKE_CURRENT_SOURCE_DIR}
|
|
${CMAKE_BINARY_DIR}/${CMAKE_INSTALL_DATADIR}/Mod/Robot
|
|
${Robot_Resources})
|
|
endif()
|
|
|
|
INSTALL(
|
|
FILES
|
|
${Robot_Scripts}
|
|
DESTINATION
|
|
Mod/Robot
|
|
)
|
|
|
|
if (DEFINED Robot_Resources)
|
|
INSTALL(
|
|
DIRECTORY
|
|
Lib
|
|
DESTINATION
|
|
${CMAKE_INSTALL_DATADIR}/Mod/Robot
|
|
PATTERN "Makefile*" EXCLUDE
|
|
PATTERN "*.pdf" EXCLUDE
|
|
PATTERN "testprog.*" EXCLUDE
|
|
)
|
|
endif()
|