Files
create/src/Mod/Robot/CMakeLists.txt
Tobias Frost 9a62a0271d Fix compilation issue if KuKa files have been removed.
(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.
2024-12-24 07:00:48 -05:00

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()