+ fix -Wtautological-bitwise-compare + fix -Wimplicit-int-float-conversion + fix -Wmisleading-indentation + fix -Wrange-loop-construct + suppress -Wdeprecated-copy of 3rd party libs
138 lines
3.3 KiB
CMake
138 lines
3.3 KiB
CMake
if(MSVC)
|
|
add_definitions(-DFCAppRobot -DHAVE_ACOSH -DHAVE_ASINH -DHAVE_ATANH)
|
|
else(MSVC)
|
|
add_definitions(-DHAVE_LIMITS_H -DHAVE_CONFIG_H)
|
|
endif(MSVC)
|
|
|
|
|
|
include_directories(
|
|
${CMAKE_BINARY_DIR}
|
|
${CMAKE_SOURCE_DIR}/src
|
|
${CMAKE_BINARY_DIR}/src
|
|
${CMAKE_CURRENT_BINARY_DIR}
|
|
${Boost_INCLUDE_DIRS}
|
|
${OCC_INCLUDE_DIR}
|
|
${EIGEN3_INCLUDE_DIR}
|
|
${PYTHON_INCLUDE_DIRS}
|
|
${ZLIB_INCLUDE_DIR}
|
|
${XercesC_INCLUDE_DIRS}
|
|
)
|
|
link_directories(${OCC_LIBRARY_DIR})
|
|
|
|
set(Robot_LIBS
|
|
Part
|
|
${QT_QTCORE_LIBRARY}
|
|
FreeCADApp
|
|
)
|
|
|
|
generate_from_xml(Robot6AxisPy)
|
|
generate_from_xml(TrajectoryPy)
|
|
generate_from_xml(WaypointPy)
|
|
generate_from_xml(RobotObjectPy)
|
|
|
|
|
|
SET(Python_SRCS
|
|
Robot6AxisPy.xml
|
|
Robot6AxisPyImp.cpp
|
|
TrajectoryPy.xml
|
|
TrajectoryPyImp.cpp
|
|
RobotObjectPy.xml
|
|
RobotObjectPyImp.cpp
|
|
WaypointPy.xml
|
|
WaypointPyImp.cpp
|
|
)
|
|
|
|
SET(Mod_SRCS
|
|
AppRobot.cpp
|
|
PreCompiled.cpp
|
|
PreCompiled.h
|
|
)
|
|
|
|
SET(Robot_SRCS
|
|
RobotObject.cpp
|
|
RobotObject.h
|
|
TrajectoryObject.cpp
|
|
TrajectoryObject.h
|
|
TrajectoryDressUpObject.cpp
|
|
TrajectoryDressUpObject.h
|
|
TrajectoryCompound.cpp
|
|
TrajectoryCompound.h
|
|
Edge2TracObject.cpp
|
|
Edge2TracObject.h
|
|
PropertyTrajectory.cpp
|
|
PropertyTrajectory.h
|
|
RobotAlgos.cpp
|
|
RobotAlgos.h
|
|
Robot6Axis.cpp
|
|
Robot6Axis.h
|
|
Trajectory.cpp
|
|
Trajectory.h
|
|
Simulation.cpp
|
|
Simulation.h
|
|
Waypoint.cpp
|
|
Waypoint.h
|
|
${Mod_SRCS}
|
|
${Python_SRCS}
|
|
)
|
|
|
|
# FIXME: The bundled KDL has some extensions which makes it incompatible
|
|
# to an installed KDL. To fix the issue two things must be done:
|
|
# * revert the changes (and look for an alternative)
|
|
# * it must be avoided to include headers of the bundled version if the
|
|
# installed version is used
|
|
#
|
|
# use external kdl
|
|
#if (FREECAD_USE_EXTERNAL_KDL)
|
|
# find_library(KDL_LIBRARY orocos-kdl)
|
|
# find_path(KDL_INCLUDES kdl/kdl.hpp)
|
|
# if(KDL_LIBRARY)
|
|
# message(STATUS "Found orocos-kdl: ${KDL_LIBRARY}")
|
|
# endif()
|
|
# if(KDL_INCLUDES)
|
|
# message(STATUS "Found orocus_kdl headers: ${KDL_INCLUDES}")
|
|
# endif()
|
|
# if(KDL_LIBRARY AND KDL_INCLUDES)
|
|
# list(APPEND Robot_LIBS ${KDL_LIBRARY})
|
|
# include_directories(${KDL_INCLUDES})
|
|
# else()
|
|
# message(FATAL_ERROR "Using external orocos-kdl was specified but was not found.")
|
|
# endif()
|
|
#
|
|
#else(FREECAD_USE_EXTERNAL_KDL)
|
|
# here we use the internal supplied kdl
|
|
add_definitions(-DKDL_USE_NEW_TREE_INTERFACE=1)
|
|
FILE( GLOB KDL_SRCS kdl_cp/[^.]*.cpp )
|
|
FILE( GLOB KDL_HPPS kdl_cp/[^.]*.hpp kdl_cp/[^.]*.inl)
|
|
|
|
FILE( GLOB UTIL_SRCS kdl_cp/utilities/[^.]*.cpp kdl_cp/utilities/[^.]*.cxx)
|
|
FILE( GLOB UTIL_HPPS kdl_cp/utilities/[^.]*.h kdl_cp/utilities/[^.]*.hpp)
|
|
|
|
SET(Robot_SRCS
|
|
${Robot_SRCS}
|
|
${KDL_SRCS}
|
|
${KDL_HPPS}
|
|
${UTIL_SRCS}
|
|
${UTIL_HPPS}
|
|
)
|
|
|
|
SOURCE_GROUP("KDL" FILES ${KDL_SRCS} ${KDL_HPPS} ${UTIL_SRCS} ${UTIL_HPPS} )
|
|
|
|
#endif(FREECAD_USE_EXTERNAL_KDL)
|
|
|
|
SOURCE_GROUP("Python" FILES ${Python_SRCS})
|
|
SOURCE_GROUP("Module" FILES ${Mod_SRCS})
|
|
|
|
add_library(Robot SHARED ${Robot_SRCS})
|
|
target_link_libraries(Robot ${Robot_LIBS})
|
|
|
|
unset(_flag_found CACHE)
|
|
check_cxx_compiler_flag("-Wno-deprecated-copy" _flag_found)
|
|
if (_flag_found)
|
|
target_compile_options(Robot PRIVATE -Wno-deprecated-copy)
|
|
endif()
|
|
|
|
SET_BIN_DIR(Robot Robot /Mod/Robot)
|
|
SET_PYTHON_PREFIX_SUFFIX(Robot)
|
|
|
|
INSTALL(TARGETS Robot DESTINATION ${CMAKE_INSTALL_LIBDIR})
|