include (${gazebo_cmake_dir}/GazeboUtils.cmake) include (CheckCXXSourceCompiles) include (${gazebo_cmake_dir}/FindOS.cmake) include (FindPkgConfig) include (${gazebo_cmake_dir}/FindFreeimage.cmake) execute_process(COMMAND pkg-config --modversion protobuf OUTPUT_VARIABLE PROTOBUF_VERSION RESULT_VARIABLE protobuf_modversion_failed) ######################################## # 1. can not use BUILD_TYPE_PROFILE is defined after include this module # 2. TODO: TOUPPER is a hack until we fix the build system to support standard build names if (CMAKE_BUILD_TYPE) string(TOUPPER ${CMAKE_BUILD_TYPE} TMP_CMAKE_BUILD_TYPE) if ("${TMP_CMAKE_BUILD_TYPE}" STREQUAL "PROFILE") include (${gazebo_cmake_dir}/FindGooglePerfTools.cmake) if (GOOGLE_PERFTOOLS_FOUND) message(STATUS "Include google-perftools") else() BUILD_ERROR("Need google/heap-profiler.h (libgoogle-perftools-dev) tools to compile in Profile mode") endif() endif() endif() ######################################## if (PROTOBUF_VERSION LESS 2.3.0) BUILD_ERROR("Incorrect version: Gazebo requires protobuf version 2.3.0 or greater") endif() ######################################## # The Google Protobuf library for message generation + serialization find_package(Protobuf REQUIRED) if (NOT PROTOBUF_FOUND) BUILD_ERROR ("Missing: Google Protobuf (libprotobuf-dev)") endif() if (NOT PROTOBUF_PROTOC_EXECUTABLE) BUILD_ERROR ("Missing: Google Protobuf Compiler (protobuf-compiler)") endif() if (NOT PROTOBUF_PROTOC_LIBRARY) BUILD_ERROR ("Missing: Google Protobuf Compiler Library (libprotoc-dev)") endif() if ("${CMAKE_BUILD_TYPE}" STREQUAL "Debug") set (GZ_PROTOBUF_LIBRARY ${PROTOBUF_LIBRARY_DEBUG}) set (GZ_PROTOBUF_PROTOC_LIBRARY ${PROTOBUF_PROTOC_LIBRARY_DEBUG}) else() set (GZ_PROTOBUF_LIBRARY ${PROTOBUF_LIBRARY}) set (GZ_PROTOBUF_PROTOC_LIBRARY ${PROTOBUF_PROTOC_LIBRARY}) endif() ######################################## include (FindOpenGL) if (NOT OPENGL_FOUND) BUILD_ERROR ("Missing: OpenGL") set (HAVE_OPENGL FALSE) else () if (OPENGL_INCLUDE_DIR) APPEND_TO_CACHED_LIST(gazeboserver_include_dirs ${gazeboserver_include_dirs_desc} ${OPENGL_INCLUDE_DIR}) set (HAVE_OPENGL TRUE) add_definitions(-DHAVE_OPENGL) endif() if (OPENGL_LIBRARIES) APPEND_TO_CACHED_LIST(gazeboserver_link_libs ${gazeboserver_link_libs_desc} ${OPENGL_LIBRARIES}) endif() endif () ######################################## include (FindOpenAL) if (NOT OPENAL_FOUND) BUILD_WARNING ("OpenAL not found, audio support will be disabled.") set (HAVE_OPENAL OFF CACHE BOOL "HAVE OpenAL" FORCE) else () set (HAVE_OPENAL ON CACHE BOOL "HAVE OpenAL" FORCE) endif () ######################################## find_package(HDF5 COMPONENTS C CXX) if (NOT HDF5_FOUND) BUILD_WARNING("HDF5 not found") else () message(STATUS "HDF5 Found") endif () ######################################## # Find packages # In Visual Studio we use configure.bat to trick all path cmake # variables so let's consider that as a replacement for pkgconfig if (MSVC) set (PKG_CONFIG_FOUND TRUE) endif() if (PKG_CONFIG_FOUND) pkg_check_modules(CURL libcurl) if (NOT CURL_FOUND) BUILD_ERROR ("Missing: libcurl. Required for connection to model database.") endif() pkg_check_modules(PROFILER libprofiler) if (PROFILER_FOUND) set (CMAKE_LINK_FLAGS_PROFILE "-Wl,--no-as-needed -lprofiler -Wl,--as-needed ${CMAKE_LINK_FLAGS_PROFILE}" CACHE INTERNAL "Link flags for profile") else () find_library(PROFILER profiler) if (PROFILER) message (STATUS "Looking for libprofiler - found") set (CMAKE_LINK_FLAGS_PROFILE "-Wl,--no-as-needed -lprofiler -Wl,--as-needed ${CMAKE_LINK_FLAGS_PROFILE}" CACHE INTERNAL "Link flags for profile") else() message (STATUS "Looking for libprofiler - not found") endif() endif() pkg_check_modules(TCMALLOC libtcmalloc) if (TCMALLOC_FOUND) set (CMAKE_LINK_FLAGS_PROFILE "${CMAKE_LINK_FLAGS_PROFILE} -Wl,--no-as-needed -ltcmalloc -Wl,--no-as-needed" CACHE INTERNAL "Link flags for profile" FORCE) else () find_library(TCMALLOC tcmalloc) if (TCMALLOC) message (STATUS "Looking for libtcmalloc - found") set (CMAKE_LINK_FLAGS_PROFILE "${CMAKE_LINK_FLAGS_PROFILE} -ltcmalloc" CACHE INTERNAL "Link flags for profile" FORCE) else () message (STATUS "Looking for libtcmalloc - not found") endif() endif () ################################################# # Find Simbody set(SimTK_INSTALL_DIR ${SimTK_INSTALL_PREFIX}) #list(APPEND CMAKE_MODULE_PATH ${SimTK_INSTALL_PREFIX}/share/cmake) find_package(Simbody) if (Simbody_FOUND) set (HAVE_SIMBODY TRUE) else() BUILD_WARNING ("Simbody not found, for simbody physics engine option, please install libsimbody-dev.") set (HAVE_SIMBODY FALSE) endif() ################################################# # Find DART find_package(DARTCore 4.3.3 QUIET) if (DARTCore_FOUND) message (STATUS "Looking for DARTCore - found") set (HAVE_DART TRUE) else() message (STATUS "Looking for DARTCore - not found") BUILD_WARNING ("DART not found, for dart physics engine option, please install libdart-core4-dev.") set (HAVE_DART FALSE) endif() ################################################# # Find tinyxml. Only debian distributions package tinyxml with a pkg-config # Use pkg_check_modules and fallback to manual detection # (needed, at least, for MacOS) # Use system installation on UNIX and Apple, and internal copy on Windows if (UNIX OR APPLE) message (STATUS "Using system tinyxml.") set (USE_EXTERNAL_TINYXML True) elseif(WIN32) message (STATUS "Using internal tinyxml.") set (USE_EXTERNAL_TINYXML False) add_definitions(-DTIXML_USE_STL) else() message (STATUS "Unknown platform, unable to configure tinyxml.") BUILD_ERROR("Unknown platform") endif() if (USE_EXTERNAL_TINYXML) pkg_check_modules(tinyxml tinyxml) if (NOT tinyxml_FOUND) find_path (tinyxml_INCLUDE_DIRS tinyxml.h ${tinyxml_INCLUDE_DIRS} ENV CPATH) find_library(tinyxml_LIBRARIES NAMES tinyxml) set (tinyxml_FAIL False) if (NOT tinyxml_INCLUDE_DIRS) message (STATUS "Looking for tinyxml headers - not found") set (tinyxml_FAIL True) endif() if (NOT tinyxml_LIBRARIES) message (STATUS "Looking for tinyxml library - not found") set (tinyxml_FAIL True) endif() endif() if (tinyxml_FAIL) message (STATUS "Looking for tinyxml.h - not found") BUILD_ERROR("Missing: tinyxml") endif() else() # Needed in WIN32 since in UNIX the flag is added in the code installed message (STATUS "Skipping search for tinyxml") set (tinyxml_INCLUDE_DIRS "") set (tinyxml_LIBRARIES "") set (tinyxml_LIBRARY_DIRS "") endif() ################################################# # Find tinyxml2. Only debian distributions package tinyxml with a pkg-config # Use pkg_check_modules and fallback to manual detection # (needed, at least, for MacOS) # Use system installation on UNIX and Apple, and internal copy on Windows if (UNIX OR APPLE) message (STATUS "Using system tinyxml2.") set (USE_EXTERNAL_TINYXML2 True) elseif(WIN32) message (STATUS "Using internal tinyxml2.") set (USE_EXTERNAL_TINYXML2 False) else() message (STATUS "Unknown platform, unable to configure tinyxml2.") BUILD_ERROR("Unknown platform") endif() if (USE_EXTERNAL_TINYXML2) pkg_check_modules(tinyxml2 tinyxml2) if (NOT tinyxml2_FOUND) find_path (tinyxml2_INCLUDE_DIRS tinyxml2.h ${tinyxml2_INCLUDE_DIRS} ENV CPATH) find_library(tinyxml2_LIBRARIES NAMES tinyxml2) set (tinyxml2_FAIL False) if (NOT tinyxml2_INCLUDE_DIRS) message (STATUS "Looking for tinyxml2 headers - not found") set (tinyxml2_FAIL True) endif() if (NOT tinyxml2_LIBRARIES) message (STATUS "Looking for tinyxml2 library - not found") set (tinyxml2_FAIL True) endif() if (NOT tinyxml2_LIBRARY_DIRS) message (STATUS "Looking for tinyxml2 library dirs - not found") set (tinyxml2_FAIL True) endif() endif() if (tinyxml2_FAIL) message (STATUS "Looking for tinyxml2.h - not found") BUILD_ERROR("Missing: tinyxml2") else() include_directories(${tinyxml2_INCLUDE_DIRS}) link_directories(${tinyxml2_LIBRARY_DIRS}) endif() else() # Needed in WIN32 since in UNIX the flag is added in the code installed message (STATUS "Skipping search for tinyxml2") set (tinyxml2_INCLUDE_DIRS "") set (tinyxml2_LIBRARIES "") set (tinyxml2_LIBRARY_DIRS "") endif() if (NOT WIN32) ################################################# # Find libtar. find_path (libtar_INCLUDE_DIRS libtar.h) find_library(libtar_LIBRARIES tar) set (LIBTAR_FOUND True) if (NOT libtar_INCLUDE_DIRS) message (STATUS "Looking for libtar.h - not found") set (LIBTAR_FOUND False) else () message (STATUS "Looking for libtar.h - found") include_directories(${libtar_INCLUDE_DIRS}) endif () if (NOT libtar_LIBRARIES) message (STATUS "Looking for libtar.so - not found") set (LIBTAR_FOUND False) else () message (STATUS "Looking for libtar.so - found") endif () if (NOT LIBTAR_FOUND) BUILD_ERROR("Missing: libtar") endif() else() set(libtar_LIBRARIES "") endif() ################################################# # Find TBB pkg_check_modules(TBB tbb) set (TBB_PKG_CONFIG "tbb") if (NOT TBB_FOUND) message(STATUS "TBB not found, attempting to detect manually") set (TBB_PKG_CONFIG "") find_library(tbb_library tbb ENV LD_LIBRARY_PATH) if (tbb_library) set(TBB_FOUND true) set(TBB_LIBRARIES ${tbb_library}) else (tbb_library) BUILD_ERROR ("Missing: TBB - Threading Building Blocks") endif(tbb_library) endif (NOT TBB_FOUND) ################################################# # Find OGRE # On Windows, we assume that all the OGRE* defines are passed in manually # to CMake. if (NOT WIN32) execute_process(COMMAND pkg-config --modversion OGRE OUTPUT_VARIABLE OGRE_VERSION) string(REPLACE "\n" "" OGRE_VERSION ${OGRE_VERSION}) string (REGEX REPLACE "^([0-9]+).*" "\\1" OGRE_MAJOR_VERSION "${OGRE_VERSION}") string (REGEX REPLACE "^[0-9]+\\.([0-9]+).*" "\\1" OGRE_MINOR_VERSION "${OGRE_VERSION}") string (REGEX REPLACE "^[0-9]+\\.[0-9]+\\.([0-9]+).*" "\\1" OGRE_PATCH_VERSION ${OGRE_VERSION}) set(OGRE_VERSION ${OGRE_MAJOR_VERSION}.${OGRE_MINOR_VERSION}.${OGRE_PATCH_VERSION}) endif() pkg_check_modules(OGRE-RTShaderSystem OGRE-RTShaderSystem>=${MIN_OGRE_VERSION}) if (OGRE-RTShaderSystem_FOUND) set(ogre_ldflags ${OGRE-RTShaderSystem_LDFLAGS}) set(ogre_include_dirs ${OGRE-RTShaderSystem_INCLUDE_DIRS}) set(ogre_libraries ${OGRE-RTShaderSystem_LIBRARIES}) set(ogre_library_dirs ${OGRE-RTShaderSystem_LIBRARY_DIRS}) set(ogre_cflags ${OGRE-RTShaderSystem_CFLAGS}) set (INCLUDE_RTSHADER ON CACHE BOOL "Enable GPU shaders") else () set (INCLUDE_RTSHADER OFF CACHE BOOL "Enable GPU shaders") endif () pkg_check_modules(OGRE OGRE>=${MIN_OGRE_VERSION}) # There are some runtime problems to solve with ogre-1.9. # Please read gazebo issues: 994, 995 if (NOT OGRE_FOUND) BUILD_ERROR("Missing: Ogre3d version >=${MIN_OGRE_VERSION}(http://www.orge3d.org)") else () set(ogre_ldflags ${ogre_ldflags} ${OGRE_LDFLAGS}) set(ogre_include_dirs ${ogre_include_dirs} ${OGRE_INCLUDE_DIRS}) set(ogre_libraries ${ogre_libraries};${OGRE_LIBRARIES}) set(ogre_library_dirs ${ogre_library_dirs} ${OGRE_LIBRARY_DIRS}) set(ogre_cflags ${ogre_cflags} ${OGRE_CFLAGS}) endif () pkg_check_modules(OGRE-Terrain OGRE-Terrain) if (OGRE-Terrain_FOUND) set(ogre_ldflags ${ogre_ldflags} ${OGRE-Terrain_LDFLAGS}) set(ogre_include_dirs ${ogre_include_dirs} ${OGRE-Terrain_INCLUDE_DIRS}) set(ogre_libraries ${ogre_libraries};${OGRE-Terrain_LIBRARIES}) set(ogre_library_dirs ${ogre_library_dirs} ${OGRE-Terrain_LIBRARY_DIRS}) set(ogre_cflags ${ogre_cflags} ${OGRE-Terrain_CFLAGS}) endif() pkg_check_modules(OGRE-Overlay OGRE-Overlay) if (OGRE-Overlay_FOUND) set(ogre_ldflags ${ogre_ldflags} ${OGRE-Overlay_LDFLAGS}) set(ogre_include_dirs ${ogre_include_dirs} ${OGRE-Overlay_INCLUDE_DIRS}) set(ogre_libraries ${ogre_libraries};${OGRE-Overlay_LIBRARIES}) set(ogre_library_dirs ${ogre_library_dirs} ${OGRE-Overlay_LIBRARY_DIRS}) set(ogre_cflags ${ogre_cflags} ${OGRE-Overlay_CFLAGS}) endif() set (OGRE_INCLUDE_DIRS ${ogre_include_dirs} CACHE INTERNAL "Ogre include path") # Also find OGRE's plugin directory, which is provided in its .pc file as the # `plugindir` variable. We have to call pkg-config manually to get it. # On Windows, we assume that all the OGRE* defines are passed in manually # to CMake. if (NOT WIN32) execute_process(COMMAND pkg-config --variable=plugindir OGRE OUTPUT_VARIABLE _pkgconfig_invoke_result RESULT_VARIABLE _pkgconfig_failed) if(_pkgconfig_failed) BUILD_WARNING ("Failed to find OGRE's plugin directory. The build will succeed, but gazebo will likely fail to run.") else() # This variable will be substituted into cmake/setup.sh.in set (OGRE_PLUGINDIR ${_pkgconfig_invoke_result}) endif() endif() ######################################## # Check and find libccd (if needed) pkg_check_modules(CCD ccd>=1.4) if (NOT CCD_FOUND) message(STATUS "Using internal copy of libccd") set(CCD_INCLUDE_DIRS "${CMAKE_SOURCE_DIR}/deps/libccd/include") set(CCD_LIBRARY_DIRS "${CMAKE_BINARY_DIR}/deps/libccd") set(CCD_LIBRARIES gazebo_ccd) endif() ######################################## # Find OpenAL # pkg_check_modules(OAL openal) # if (NOT OAL_FOUND) # BUILD_WARNING ("Openal not found. Audio capabilities will be disabled.") # set (HAVE_OPENAL FALSE) # else (NOT OAL_FOUND) # set (HAVE_OPENAL TRUE) # endif () ######################################## # Find libswscale format pkg_check_modules(libswscale libswscale) if (NOT libswscale_FOUND) BUILD_WARNING ("libswscale not found. Audio-video capabilities will be disabled.") else() include_directories(${libswscale_INCLUDE_DIRS}) link_directories(${libswscale_LIBRARY_DIRS}) endif () ######################################## # Find AV format pkg_check_modules(libavformat libavformat) if (NOT libavformat_FOUND) BUILD_WARNING ("libavformat not found. Audio-video capabilities will be disabled.") else() include_directories(${libavformat_INCLUDE_DIRS}) link_directories(${libavformat_LIBRARY_DIRS}) endif () ######################################## # Find avcodec pkg_check_modules(libavcodec libavcodec) if (NOT libavcodec_FOUND) BUILD_WARNING ("libavcodec not found. Audio-video capabilities will be disabled.") else() include_directories(${libavcodec_INCLUDE_DIRS}) link_directories(${libavcodec_LIBRARY_DIRS}) endif () ######################################## # Find avutil pkg_check_modules(libavutil libavutil) if (NOT libavutil_FOUND) BUILD_WARNING ("libavutil not found. Audio-video capabilities will be disabled.") endif () if (libavutil_FOUND AND libavformat_FOUND AND libavcodec_FOUND AND libswscale_FOUND) set (HAVE_FFMPEG TRUE) else () set (HAVE_FFMPEG FALSE) endif () ######################################## # Find Player pkg_check_modules(PLAYER playercore>=3.0 playerc++ playerwkb) if (NOT PLAYER_FOUND) set (INCLUDE_PLAYER OFF CACHE BOOL "Build gazebo plugin for player") BUILD_WARNING ("Player not found, gazebo plugin for player will not be built.") else (NOT PLAYER_FOUND) set (INCLUDE_PLAYER ON CACHE BOOL "Build gazebo plugin for player") set (PLAYER_INCLUDE_DIRS ${PLAYER_INCLUDE_DIRS} CACHE INTERNAL "Player include directory") set (PLAYER_LINK_DIRS ${PLAYER_LINK_DIRS} CACHE INTERNAL "Player link directory") set (PLAYER_LINK_LIBS ${PLAYER_LIBRARIES} CACHE INTERNAL "Player libraries") endif () ######################################## # Find GNU Triangulation Surface Library pkg_check_modules(gts gts) if (gts_FOUND) message (STATUS "Looking for GTS - found") set (HAVE_GTS TRUE) else () set (HAVE_GTS FALSE) BUILD_WARNING ("GNU Triangulation Surface library not found - Gazebo will not have CSG support.") endif () ################################################# # Find bullet # First and preferred option is to look for bullet standard pkgconfig, # so check it first. if it is not present, check for the OSRF # custom bullet2.82.pc file pkg_check_modules(BULLET bullet>=2.82) if (NOT BULLET_FOUND) pkg_check_modules(BULLET bullet2.82>=2.82) endif() if (BULLET_FOUND) set (HAVE_BULLET TRUE) add_definitions( -DLIBBULLET_VERSION=${BULLET_VERSION} ) else() set (HAVE_BULLET FALSE) add_definitions( -DLIBBULLET_VERSION=0.0 ) BUILD_WARNING ("Bullet > 2.82 not found, for bullet physics engine option, please install libbullet2.82-dev.") endif() if (BULLET_VERSION VERSION_GREATER 2.82) add_definitions( -DLIBBULLET_VERSION_GT_282 ) endif() ######################################## # Find libusb pkg_check_modules(libusb-1.0 libusb-1.0) if (NOT libusb-1.0_FOUND) BUILD_WARNING ("libusb-1.0 not found. USB peripherals support will be disabled.") set (HAVE_USB OFF CACHE BOOL "HAVE USB" FORCE) else() message (STATUS "Looking for libusb-1.0 - found. USB peripherals support enabled.") set (HAVE_USB ON CACHE BOOL "HAVE USB" FORCE) include_directories(${libusb-1.0_INCLUDE_DIRS}) link_directories(${libusb-1.0_LIBRARY_DIRS}) endif () ################################################# # Find Oculus SDK. pkg_check_modules(OculusVR OculusVR) if (HAVE_USB AND OculusVR_FOUND) message (STATUS "Oculus Rift support enabled.") set (HAVE_OCULUS ON CACHE BOOL "HAVE OCULUS" FORCE) include_directories(SYSTEM ${OculusVR_INCLUDE_DIRS}) link_directories(${OculusVR_LIBRARY_DIRS}) else () BUILD_WARNING ("Oculus Rift support will be disabled.") set (HAVE_OCULUS OFF CACHE BOOL "HAVE OCULUS" FORCE) endif() else (PKG_CONFIG_FOUND) set (BUILD_GAZEBO OFF CACHE INTERNAL "Build Gazebo" FORCE) BUILD_ERROR ("Error: pkg-config not found") endif () ######################################## # Find SDFormat set (SDFormat_MIN_VERSION 4.1.0) find_package(SDFormat ${SDFormat_MIN_VERSION}) if (NOT SDFormat_FOUND) message (STATUS "Looking for SDFormat - not found") BUILD_ERROR ("Missing: SDF version >=${SDFormat_MIN_VERSION}. Required for reading and writing SDF files.") else() message (STATUS "Looking for SDFormat - found") endif() ######################################## # Find QT find_package(Qt4 COMPONENTS QtCore QtGui QtXml QtXmlPatterns REQUIRED) if (NOT QT4_FOUND) BUILD_ERROR("Missing: Qt4") endif() ######################################## # Find Boost, if not specified manually include(FindBoost) find_package(Boost ${MIN_BOOST_VERSION} REQUIRED thread signals system filesystem program_options regex iostreams date_time) if (NOT Boost_FOUND) set (BUILD_GAZEBO OFF CACHE INTERNAL "Build Gazebo" FORCE) BUILD_ERROR ("Boost not found. Please install thread signals system filesystem program_options regex date_time boost version ${MIN_BOOST_VERSION} or higher.") endif() ######################################## # Find libdl find_path(libdl_include_dir dlfcn.h /usr/include /usr/local/include) if (NOT libdl_include_dir) message (STATUS "Looking for dlfcn.h - not found") BUILD_ERROR ("Missing libdl: Required for plugins.") set (libdl_include_dir /usr/include) else (NOT libdl_include_dir) message (STATUS "Looking for dlfcn.h - found") endif () find_library(libdl_library dl /usr/lib /usr/local/lib) if (NOT libdl_library) message (STATUS "Looking for libdl - not found") BUILD_ERROR ("Missing libdl: Required for plugins.") set(libdl_library "") else (NOT libdl_library) message (STATUS "Looking for libdl - found") endif () ######################################## # Find gdal include (FindGDAL) if (NOT GDAL_FOUND) message (STATUS "Looking for libgdal - not found") BUILD_WARNING ("GDAL not found, Digital elevation terrains support will be disabled.") set (HAVE_GDAL OFF CACHE BOOL "HAVE GDAL" FORCE) else () message (STATUS "Looking for libgdal - found") set (HAVE_GDAL ON CACHE BOOL "HAVE GDAL" FORCE) endif () ######################################## # Include man pages stuff include (${gazebo_cmake_dir}/Ronn2Man.cmake) include (${gazebo_cmake_dir}/Man.cmake) add_manpage_target() ######################################## # Find Space Navigator header and library find_library(SPNAV_LIBRARY NAMES spnav) find_file(SPNAV_HEADER NAMES spnav.h) if (SPNAV_LIBRARY AND SPNAV_HEADER) message(STATUS "Looking for libspnav and spnav.h - found") set(HAVE_SPNAV TRUE) else() message(STATUS "Looking for libspnav and spnav.h - not found") set(HAVE_SPNAV FALSE) endif() ######################################## # Find xsltproc, which is used by tools/check_test_ran.py find_program(XSLTPROC xsltproc) if (NOT EXISTS ${XSLTPROC}) BUILD_WARNING("xsltproc not found. The check_test_ran.py script will cause tests to fail.") endif() ######################################## # Find uuid-dev Library #pkg_check_modules(uuid uuid) #if (uuid_FOUND) # message (STATUS "Looking for uuid - found") # set (HAVE_UUID TRUE) #else () # set (HAVE_UUID FALSE) # BUILD_WARNING ("uuid-dev library not found - Gazebo will not have uuid support.") #endif () ######################################## # Find uuid # - In UNIX we use uuid library. # - In Windows the native RPC call, no dependency needed. if (UNIX) pkg_check_modules(uuid uuid) if (uuid_FOUND) message (STATUS "Looking for uuid - found") set (HAVE_UUID TRUE) else () set (HAVE_UUID FALSE) BUILD_WARNING ("uuid-dev library not found - Gazebo will not have uuid support.") endif () else() message (STATUS "Using Windows RPC UuidCreate function") set (HAVE_UUID TRUE) endif() ######################################## # Find graphviz include (${gazebo_cmake_dir}/FindGraphviz.cmake) if (NOT GRAPHVIZ_FOUND) message (STATUS "Looking for libgraphviz-dev - not found") BUILD_WARNING ("Graphviz not found, Model editor's schematic view will be disabled.") set (HAVE_GRAPHVIZ OFF CACHE BOOL "HAVE GRAPHVIZ" FORCE) else () message (STATUS "Looking for libgraphviz-dev - found") set (HAVE_GRAPHVIZ ON CACHE BOOL "HAVE GRAPHVIZ" FORCE) endif () ######################################## # Find ignition math in unix platforms # In Windows we expect a call from configure.bat script with the paths if (NOT WIN32) find_package(ignition-math2 2.4 QUIET) if (NOT ignition-math2_FOUND) message(STATUS "Looking for ignition-math2-config.cmake - not found") BUILD_ERROR ("Missing: Ignition math2 library.") else() message(STATUS "Looking for ignition-math2-config.cmake - found") endif() endif() ######################################## # Find the Ignition_Transport library # In Windows we expect a call from configure.bat script with the paths if (NOT WIN32) find_package(ignition-transport2 QUIET) if (NOT ignition-transport2_FOUND) find_package(ignition-transport1 QUIET) if (NOT ignition-transport1_FOUND) BUILD_WARNING ("Missing: Ignition Transport (libignition-transport-dev or libignition-transport2-dev") endif() endif() if (ignition-transport2_FOUND OR ignition-transport1_FOUND) set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${IGNITION-TRANSPORT_CXX_FLAGS}") include_directories(${IGNITION-TRANSPORT_INCLUDE_DIRS}) link_directories(${IGNITION-TRANSPORT_LIBRARY_DIRS}) endif() endif() ################################################ # Find Valgrind for checking memory leaks in the # tests find_program(VALGRIND_PROGRAM NAMES valgrind PATH ${VALGRIND_ROOT}/bin) option(GAZEBO_RUN_VALGRIND_TESTS "Run gazebo tests with Valgrind" FALSE) mark_as_advanced(GAZEBO_RUN_VALGRIND_TESTS) if (GAZEBO_RUN_VALGRIND_TESTS AND NOT VALGRIND_PROGRAM) BUILD_WARNING("valgrind not found. Memory check tests will be skipped.") endif() ######################################## # Find QWT (QT graphing library) #find_path(QWT_INCLUDE_DIR NAMES qwt.h PATHS # /usr/include # /usr/local/include # "$ENV{LIB_DIR}/include" # "$ENV{INCLUDE}" # PATH_SUFFIXES qwt-qt4 qwt qwt5 # ) # #find_library(QWT_LIBRARY NAMES qwt qwt6 qwt5 PATHS # /usr/lib # /usr/local/lib # "$ENV{LIB_DIR}/lib" # "$ENV{LIB}/lib" # ) # #if (QWT_INCLUDE_DIR AND QWT_LIBRARY) # set(HAVE_QWT TRUE) #endif (QWT_INCLUDE_DIR AND QWT_LIBRARY) # #if (HAVE_QWT) # if (NOT QWT_FIND_QUIETLY) # message(STATUS "Found Qwt: ${QWT_LIBRARY}") # endif (NOT QWT_FIND_QUIETLY) #else () # if (QWT_FIND_REQUIRED) # BUILD_WARNING ("Could not find libqwt-dev. Plotting features will be disabled.") # endif (QWT_FIND_REQUIRED) #endif ()