pxmlw6n2f/Gazebo_Distributed_TCP/gazebo/common/CMakeLists.txt

263 lines
5.2 KiB
CMake

include (${gazebo_cmake_dir}/GazeboUtils.cmake)
if (WIN32)
add_definitions(-DBUILDING_DLL_GZ_COMMON)
endif()
# tiny obj loader
include_directories(SYSTEM ${CMAKE_SOURCE_DIR}/deps/tinyobjloader)
if (HAVE_OPENAL)
include_directories(${OPENAL_INCLUDE_DIR})
endif()
if (HAVE_GTS)
include_directories(${gts_INCLUDE_DIRS})
link_directories(${gts_LIBRARY_DIRS})
add_definitions(${gts_CFLAGS})
endif()
if (HAVE_GDAL)
include_directories(${GDAL_INCLUDE_DIR})
endif()
if (CURL_FOUND)
include_directories(${CURL_INCLUDEDIR})
link_directories(${CURL_LIBDIR})
if (WIN32)
add_definitions(-DCURL_STATICLIB)
endif()
endif()
include_directories(${tinyxml_INCLUDE_DIRS})
link_directories(${tinyxml_LIBRARY_DIRS})
set (sources
Animation.cc
Assert.cc
AudioDecoder.cc
Battery.cc
Base64.cc
BVHLoader.cc
ColladaExporter.cc
ColladaLoader.cc
Color.cc
CommonIface.cc
Console.cc
Dem.cc
Event.cc
Events.cc
Exception.cc
HeightmapData.cc
Image.cc
ImageHeightmap.cc
KeyEvent.cc
KeyFrame.cc
Material.cc
Mesh.cc
MeshExporter.cc
MeshLoader.cc
MeshManager.cc
ModelDatabase.cc
MouseEvent.cc
OBJLoader.cc
PID.cc
SemanticVersion.cc
SkeletonAnimation.cc
Skeleton.cc
SphericalCoordinates.cc
STLLoader.cc
SystemPaths.cc
SVGLoader.cc
Time.cc
Timer.cc
Video.cc
ffmpeg_inc.cc
)
if (NOT USE_EXTERNAL_TINYXML)
include_directories (${CMAKE_SOURCE_DIR}/deps/win/tinyxml)
set (sources ${sources}
${CMAKE_SOURCE_DIR}/deps/win/tinyxml/tinystr.cpp
${CMAKE_SOURCE_DIR}/deps/win/tinyxml/tinyxml.cpp
${CMAKE_SOURCE_DIR}/deps/win/tinyxml/tinyxmlerror.cpp
${CMAKE_SOURCE_DIR}/deps/win/tinyxml/tinyxmlparser.cpp)
endif()
set (headers
Animation.hh
Assert.hh
AudioDecoder.hh
Battery.hh
Base64.hh
BVHLoader.hh
ColladaLoader.hh
CommonIface.hh
CommonTypes.hh
Color.hh
Console.hh
Dem.hh
EnumIface.hh
Event.hh
Events.hh
Exception.hh
MovingWindowFilter.hh
HeightmapData.hh
Image.hh
ImageHeightmap.hh
KeyEvent.hh
KeyFrame.hh
Material.hh
Mesh.hh
MeshLoader.hh
MeshManager.hh
ModelDatabase.hh
MouseEvent.hh
OBJLoader.hh
PID.hh
Plugin.hh
SemanticVersion.hh
SkeletonAnimation.hh
Skeleton.hh
SingletonT.hh
SphericalCoordinates.hh
STLLoader.hh
SystemPaths.hh
SVGLoader.hh
Time.hh
Timer.hh
UpdateInfo.hh
Video.hh
ffmpeg_inc.h
)
set (gtest_sources
Animation_TEST.cc
Battery_TEST.cc
ColladaExporter_TEST.cc
ColladaLoader_TEST.cc
Color_TEST.cc
CommonIface_TEST.cc
Console_TEST.cc
Dem_TEST.cc
EnumIface_TEST.cc
Exception_TEST.cc
Event_TEST.cc
HeightmapData_TEST.cc
Image_TEST.cc
ImageHeightmap_TEST.cc
Material_TEST.cc
Mesh_TEST.cc
MeshManager_TEST.cc
MouseEvent_TEST.cc
MovingWindowFilter_TEST.cc
OBJLoader_TEST.cc
SemanticVersion_TEST.cc
SphericalCoordinates_TEST.cc
SystemPaths_TEST.cc
SVGLoader_TEST.cc
Time_TEST.cc
)
# Timer test fails on OSX
# See issue #1626
if (NOT APPLE)
set (gtest_sources
${gtest_sources}
Timer_TEST.cc
)
endif()
if (HAVE_GTS)
set (sources
${sources}
GTSMeshUtils.cc
MeshCSG.cc
)
set (headers
${headers}
GTSMeshUtils.hh
MeshCSG.hh
)
set (gtest_sources
${gtest_sources}
GTSMeshUtils_TEST.cc
)
endif()
if (HAVE_FFMPEG)
set (gtest_sources ${gtest_sources}
AudioDecoder_TEST.cc)
endif()
gz_build_tests(${gtest_sources} EXTRA_LIBS gazebo_common)
set (common_headers "" CACHE INTERNAL "common headers" FORCE)
foreach (hdr ${headers})
APPEND_TO_CACHED_STRING(common_headers
"Common Headers" "#include \"gazebo/common/${hdr}\"\n")
endforeach()
configure_file (${CMAKE_CURRENT_SOURCE_DIR}/common.hh.in ${CMAKE_CURRENT_BINARY_DIR}/common.hh )
set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DBUILDING_DLL_GZ_COMMON")
if (WIN32)
# 0x601 = Windows 7. TBB needs to know this.
set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -D_WIN32_WINNT=0x601")
endif ()
gz_add_library(gazebo_common ${sources})
set_property(
SOURCE SystemPaths.cc SystemPaths_TEST.cc ModelDatabase.cc Console.cc
PROPERTY COMPILE_DEFINITIONS
GAZEBO_PLUGIN_PATH="${GAZEBO_PLUGIN_PATH}"
GAZEBO_MODEL_PATH="${GAZEBO_MODEL_PATH}"
GAZEBO_RESOURCE_PATH="${GAZEBO_RESOURCE_PATH}"
GAZEBO_MODEL_DATABASE_URI="${GAZEBO_MODEL_DATABASE_URI}"
GAZEBO_DEFAULT_MASTER_PORT=${GAZEBO_DEFAULT_MASTER_PORT}
OGRE_RESOURCE_PATH="${OGRE_RESOURCE_PATH}"
)
target_link_libraries(gazebo_common
gazebo_math
${IGNITION-MATH_LIBRARIES}
${libdl_library}
${libtool_library}
${Boost_LIBRARIES}
${freeimage_LIBRARIES}
${tinyxml_LIBRARIES}
${libavcodec_LIBRARIES}
${libavformat_LIBRARIES}
${libavutil_LIBRARIES}
${CURL_LIBRARIES}
${libswscale_LIBRARIES}
${libtar_LIBRARIES}
${TBB_LIBRARIES}
${SDFormat_LIBRARIES}
)
if (UNIX)
target_link_libraries(gazebo_common pthread)
endif()
if (UNIX AND NOT APPLE)
# rt is used for clock_gettime, which is not available on apple or windows
target_link_libraries(gazebo_common rt)
endif()
if (HAVE_GTS)
target_link_libraries(gazebo_common ${gts_LIBRARIES})
endif()
if (HAVE_OPENAL)
target_link_libraries(gazebo_common ${OPENAL_LIBRARY})
endif()
if (HAVE_GDAL)
target_link_libraries(gazebo_common ${GDAL_LIBRARY})
endif()
gz_install_library(gazebo_common)
gz_install_includes("common" ${headers} ${CMAKE_CURRENT_BINARY_DIR}/common.hh)