FreeCAD/data/examples/CMakeLists.txt

136 lines
4.9 KiB
CMake

SET(Examples_Files
Schenkel.stp
DrawingExample.FCStd
EngineBlock.FCStd
PartDesignExample.FCStd
RobotExample.FCStd
ArchDetail.FCStd
FemCalculixCantilever2D.FCStd
FemCalculixCantilever3D.FCStd
)
ADD_CUSTOM_TARGET(Example_data ALL
SOURCES ${Examples_Files}
)
# 0001097: CMake stops with error "Circular ... <- ... dependency dropped."
if(NOT "${CMAKE_SOURCE_DIR}" STREQUAL "${CMAKE_BINARY_DIR}")
fc_copy_sources(Example_data "${CMAKE_BINARY_DIR}/data/examples" ${Examples_Files})
endif()
if (WIN32 AND FREECAD_LIBPACK_USE)
# pivy
foreach (it ${FREECAD_LIBPACK_PIVY_COIN})
get_filename_component(libfile ${it} NAME)
set(out "${CMAKE_BINARY_DIR}/lib/pivy/${libfile}")
add_custom_command(
DEPENDS ${it}
OUTPUT ${out}
COMMAND ${CMAKE_COMMAND}
ARGS -E copy_if_different ${it} ${out}
MAIN_DEPENDENCY ${it}
COMMENT "Copy file to ${out}"
)
endforeach (it)
SOURCE_GROUP("pivy" FILES ${FREECAD_LIBPACK_PIVY_COIN})
# shiboken
foreach (it ${FREECAD_LIBPACK_SHIBOKEN})
get_filename_component(libfile ${it} NAME)
set(out "${CMAKE_BINARY_DIR}/lib/${libfile}")
add_custom_command(
DEPENDS ${it}
OUTPUT ${out}
COMMAND ${CMAKE_COMMAND}
ARGS -E copy_if_different ${it} ${out}
MAIN_DEPENDENCY ${it}
COMMENT "Copy file to ${out}"
)
endforeach (it)
SOURCE_GROUP("Shiboken" FILES ${FREECAD_LIBPACK_SHIBOKEN})
# PySide
foreach (it ${FREECAD_LIBPACK_PYSIDE})
get_filename_component(libfile ${it} NAME)
set(out "${CMAKE_BINARY_DIR}/lib/PySide/${libfile}")
add_custom_command(
DEPENDS ${it}
OUTPUT ${out}
COMMAND ${CMAKE_COMMAND}
ARGS -E copy_if_different ${it} ${out}
MAIN_DEPENDENCY ${it}
COMMENT "Copy file to ${out}"
)
endforeach (it)
SOURCE_GROUP("PySide" FILES ${FREECAD_LIBPACK_PYSIDE})
# PySide tools
foreach (it ${FREECAD_LIBPACK_PYSIDEUIC})
get_filename_component(libpath ${it} PATH)
set(src "${FREECAD_LIBPACK_PYSIDEUIC_REL}/${it}")
if("${libpath}" STREQUAL "pysideuic")
set(FREECAD_LIBPACK_PYSIDEUIC_TOP ${FREECAD_LIBPACK_PYSIDEUIC_TOP} ${src})
elseif("${libpath}" STREQUAL "pysideuic/Compiler")
set(FREECAD_LIBPACK_PYSIDEUIC_CMP ${FREECAD_LIBPACK_PYSIDEUIC_CMP} ${src})
elseif("${libpath}" STREQUAL "pysideuic/port_v2")
set(FREECAD_LIBPACK_PYSIDEUIC_PV2 ${FREECAD_LIBPACK_PYSIDEUIC_PV2} ${src})
elseif("${libpath}" STREQUAL "pysideuic/port_v3")
set(FREECAD_LIBPACK_PYSIDEUIC_PV3 ${FREECAD_LIBPACK_PYSIDEUIC_PV3} ${src})
elseif("${libpath}" STREQUAL "pysideuic/widget-plugins")
set(FREECAD_LIBPACK_PYSIDEUIC_WPL ${FREECAD_LIBPACK_PYSIDEUIC_WPL} ${src})
else()
set(FREECAD_LIBPACK_PYSIDEUIC_OTH ${FREECAD_LIBPACK_PYSIDEUIC_OTH} ${src})
endif()
set(FREECAD_LIBPACK_PYSIDEUIC_ABS ${FREECAD_LIBPACK_PYSIDEUIC_ABS} ${src})
set(out "${CMAKE_BINARY_DIR}/lib/${it}")
add_custom_command(
DEPENDS ${src}
OUTPUT ${out}
COMMAND ${CMAKE_COMMAND}
ARGS -E copy_if_different ${src} ${out}
MAIN_DEPENDENCY ${src}
COMMENT "Copy file to ${out}"
)
endforeach (it)
SOURCE_GROUP("PySide tools" FILES ${FREECAD_LIBPACK_PYSIDEUIC_OTH})
SOURCE_GROUP("PySide tools\\pysideuic" FILES ${FREECAD_LIBPACK_PYSIDEUIC_TOP})
SOURCE_GROUP("PySide tools\\pysideuic\\Compiler" FILES ${FREECAD_LIBPACK_PYSIDEUIC_CMP})
SOURCE_GROUP("PySide tools\\pysideuic\\port_v2" FILES ${FREECAD_LIBPACK_PYSIDEUIC_PV2})
SOURCE_GROUP("PySide tools\\pysideuic\\port_v3" FILES ${FREECAD_LIBPACK_PYSIDEUIC_PV3})
SOURCE_GROUP("PySide tools\\pysideuic\\widget-plugins" FILES ${FREECAD_LIBPACK_PYSIDEUIC_WPL})
# Python extension modules
foreach (it ${FREECAD_LIBPACK_PYTHON})
get_filename_component(libfile ${it} NAME)
set(out "${CMAKE_BINARY_DIR}/lib/${libfile}")
add_custom_command(
DEPENDS ${it}
OUTPUT ${out}
COMMAND ${CMAKE_COMMAND}
ARGS -E copy_if_different ${it} ${out}
MAIN_DEPENDENCY ${it}
COMMENT "Copy file to ${out}"
)
endforeach (it)
SOURCE_GROUP("Python" FILES ${FREECAD_LIBPACK_PYTHON})
set(FREECAD_LIBPACK_FILES
${FREECAD_LIBPACK_PIVY_COIN}
${FREECAD_LIBPACK_SHIBOKEN}
${FREECAD_LIBPACK_PYSIDE}
${FREECAD_LIBPACK_PYSIDEUIC_ABS}
${FREECAD_LIBPACK_PYTHON}
)
add_custom_target(LibPack_Files ALL SOURCES ${FREECAD_LIBPACK_FILES})
endif(WIN32 AND FREECAD_LIBPACK_USE)
INSTALL(
FILES
${Examples_Files}
DESTINATION
${CMAKE_INSTALL_DATADIR}/examples
)