forked from speed-dreams/speed-dreams-code
Xavier Del Campo Romero
022b19a141
As opposed to simu >= 3.0, simu 2.1 did not consider air or wheel temperatures. This would have several consequences: - Some drivers such as shadow rely on these parameters to calculate tire grip. If temperature air is zero (i.e., 0K), no grip is assumed and therefore speeds are also assigned to zero, making the driver not to move at all. - Invalid temperature values (i.e., 0K) would be shown on the UI, both in ssg and OSG. Unfortunately, simuv2.1 bundled the SOLID-2.0 library (aka FreeSOLID) because the library is not available from most GNU/Linux distributions yet. In order to solve this situation, the FreeSOLID library was migrated from CVS to Git [1] so it could be used as a submodule, and therefore let the build system decide whether to optionally use the in-tree copy. That said, packaging/3rdParty-devel has dropped FreeSOLID in favour of the submodule, since it must always be built from source anyway. [1]: https://forge.a-lec.org/speed-dreams/freesolid
110 lines
3.2 KiB
CMake
110 lines
3.2 KiB
CMake
# Locate SOLID libraries (collision detection for solid bodies)
|
|
# This module defines
|
|
# SOLID_SOLID_LIBRARY, SOLID_BROAD_LIBRARY : name of each lib
|
|
# SOLID_LIBRARY : list of lib names
|
|
# SOLID_FOUND : if false, do not try to link to SOLID
|
|
# SOLID_INCLUDE_DIR : where to find the headers
|
|
#
|
|
# $SOLID_DIR is an environment variable that would
|
|
# correspond to the ./configure --prefix=$SOLID_DIR
|
|
# used in building SOLID.
|
|
#
|
|
# Created by Jean-Philippe Meuret (based on Mart Kelder's FindPLIB.cmake).
|
|
|
|
# No use to do all of this twice.
|
|
IF(SOLID_FOUND)
|
|
RETURN()
|
|
ENDIF(SOLID_FOUND)
|
|
|
|
# First, try with PkgConfig if available.
|
|
FIND_PACKAGE(PkgConfig)
|
|
IF(PKGCONFIG_FOUND)
|
|
|
|
PKG_CHECK_MODULES(SOLID FreeSOLID)
|
|
IF(NOT SOLID_FOUND)
|
|
PKG_CHECK_MODULES(SOLID SOLID)
|
|
ENDIF (NOT SOLID_FOUND)
|
|
|
|
IF(SOLID_FOUND)
|
|
SET(SOLID_FOUND TRUE)
|
|
SET(SOLID_INCLUDE_DIR ${SOLID_INCLUDE_DIRS} CACHE STRING "SOLID include paths")
|
|
SET(SOLID_SOLID_LIBRARY ${SOLID_LIBRARIES} CACHE STRING "SOLID library")
|
|
SET(SOLID_BROAD_LIBRARY "NOT-FOUND" CACHE STRING "BROAD libraries")
|
|
SET(SOLID_MOTO_LIBRARY "NOT-FOUND" CACHE STRING "MOTO libraries")
|
|
SET(SOLID_LIBRARY ${SOLID_SOLID_LIBRARY})
|
|
MESSAGE(STATUS "Looking for SOLID --- found using pkg-config (${SOLID_SOLID_LIBRARY})")
|
|
RETURN()
|
|
ENDIF(SOLID_FOUND)
|
|
|
|
ENDIF(PKGCONFIG_FOUND)
|
|
|
|
# Then try the good old way for include dirs.
|
|
IF(NOT APPLE)
|
|
|
|
FIND_PATH(SOLID_INCLUDE_DIR SOLID/solid.h
|
|
HINTS ENV SOLID_DIR
|
|
PATH_SUFFIXES
|
|
include/FreeSOLID include/freesolid include/SOLID include
|
|
PATHS
|
|
/usr /usr/local
|
|
DOC "Non-Apple include dir for SOLID")
|
|
|
|
ELSE(NOT APPLE)
|
|
|
|
FIND_PATH(SOLID_INCLUDE_DIR solid.h
|
|
HINTS ENV SOLID_DIR
|
|
PATH_SUFFIXES
|
|
Headers include/FreeSOLID include/freesolid include/SOLID include
|
|
PATHS
|
|
#Additional MacOS Paths
|
|
~/Library/Frameworks/SOLID.framework
|
|
/Library/Frameworks/SOLID.framework
|
|
/System/Library/Frameworks/SOLID.framework # Tiger
|
|
|
|
/usr /usr/local
|
|
DOC "Apple include dir for SOLID")
|
|
|
|
ENDIF(NOT APPLE)
|
|
|
|
# Then try the good old way for libs.
|
|
FIND_LIBRARY(SOLID_SOLID_LIBRARY
|
|
NAMES solid2 solid FreeSOLID freesolid
|
|
HINTS ENV SOLID_DIR
|
|
PATH_SUFFIXES lib64 lib libs64 libs libs/Win32 libs/Win64
|
|
PATHS /usr /usr/local)
|
|
|
|
#MESSAGE(STATUS "Looking for SOLID --- SOLID_SOLID_LIBRARY = ${SOLID_SOLID_LIBRARY}")
|
|
IF(WIN32)
|
|
|
|
FIND_LIBRARY(SOLID_BROAD_LIBRARY
|
|
NAMES broad
|
|
HINTS ENV SOLID_DIR
|
|
PATH_SUFFIXES lib64 lib libs64 libs libs/Win32 libs/Win64
|
|
PATHS /usr /usr/local)
|
|
|
|
FIND_LIBRARY(SOLID_MOTO_LIBRARY
|
|
NAMES moto
|
|
HINTS ENV SOLID_DIR
|
|
PATH_SUFFIXES lib64 lib libs64 libs libs/Win32 libs/Win64
|
|
PATHS /usr /usr/local)
|
|
|
|
ENDIF(WIN32)
|
|
|
|
IF(SOLID_INCLUDE_DIR AND SOLID_SOLID_LIBRARY)
|
|
SET(SOLID_FOUND TRUE)
|
|
ENDIF(SOLID_INCLUDE_DIR AND SOLID_SOLID_LIBRARY)
|
|
|
|
IF(SOLID_FOUND)
|
|
MESSAGE(STATUS "Looking for SOLID - found (${SOLID_SOLID_LIBRARY})")
|
|
SET(SOLID_LIBRARY ${SOLID_SOLID_LIBRARY})
|
|
IF(WIN32)
|
|
IF(SOLID_BROAD_LIBRARY)
|
|
SET(SOLID_LIBRARY ${SOLID_LIBRARY} ${SOLID_BROAD_LIBRARY})
|
|
ENDIF(SOLID_BROAD_LIBRARY)
|
|
IF(SOLID_MOTO_LIBRARY)
|
|
SET(SOLID_LIBRARY ${SOLID_LIBRARY} ${SOLID_MOTO_LIBRARY})
|
|
ENDIF(SOLID_MOTO_LIBRARY)
|
|
ENDIF(WIN32)
|
|
ELSE(SOLID_FOUND)
|
|
MESSAGE(STATUS "Looking for SOLID - NOT found")
|
|
ENDIF(SOLID_FOUND)
|