speed-dreams-code/cmake/internaldeps.cmake
Xavier Del Campo Romero 022b19a141
Remove simuv2.1, add FreeSOLID as a submodule
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
2025-01-27 00:46:06 +01:00

84 lines
3 KiB
CMake

############################################################################
#
# file : internaldeps.cmake
# copyright : (C) 2008 by Mart Kelder, 2010 by J.-P. Meuret
# web : www.speed-dreams.org
#
############################################################################
############################################################################
# #
# This program is free software; you can redistribute it and/or modify #
# it under the terms of the GNU General Public License as published by #
# the Free Software Foundation; either version 2 of the License, or #
# (at your option) any later version. #
# #
############################################################################
# @file Internal dependencies (include and libs)
# @author Mart Kelder, J.-P. Meuret
# SD include dirs macros.
MACRO(ADD_INTERFACE_INCLUDEDIR)
ENDMACRO(ADD_INTERFACE_INCLUDEDIR)
MACRO(ADD_SDLIB_INCLUDEDIR)
ENDMACRO(ADD_SDLIB_INCLUDEDIR)
# SD libraries macro.
MACRO(ADD_SDLIB_LIBRARY TARGET)
#MESSAGE(STATUS "ADD_SDLIB_LIBRARY : TARGET = ${TARGET}")
#MESSAGE(STATUS "ADD_SDLIB_LIBRARY : ARGN = ${ARGN}")
SET(SDLIB_OPTIONAL FALSE)
SET(SDLIB_STATIC FALSE)
SET(SDLIB_TARGET_SUFFIX "")
FOREACH(SDLIB_LIB ${ARGN})
IF(${SDLIB_LIB} STREQUAL "OPTIONAL")
SET(SDLIB_OPTIONAL TRUE)
ENDIF(${SDLIB_LIB} STREQUAL "OPTIONAL")
IF(${SDLIB_LIB} STREQUAL "STATIC")
SET(SDLIB_STATIC TRUE)
SET(SDLIB_TARGET_SUFFIX "_static")
ENDIF(${SDLIB_LIB} STREQUAL "STATIC")
ENDFOREACH(SDLIB_LIB ${ARGN})
FOREACH(SDLIB_LIB ${ARGN})
SET(SDLIB_IGNORE TRUE)
IF(NOT UNIX)
SET(SDLIB_IGNORE FALSE)
ELSEIF(NOT SDLIB_LIB STREQUAL "ssggraph" AND NOT SDLIB_LIB STREQUAL "osggraph" AND NOT SDLIB_LIB STREQUAL "track")
SET(SDLIB_IGNORE FALSE)
ENDIF(NOT UNIX)
IF(SDLIB_LIB STREQUAL "OPTIONAL" OR SDLIB_LIB STREQUAL "STATIC")
SET(SDLIB_IGNORE TRUE) #Ignore: not a real target
ENDIF(SDLIB_LIB STREQUAL "OPTIONAL" OR SDLIB_LIB STREQUAL "STATIC")
IF(SDLIB_LIB STREQUAL "txml" AND OPTION_3RDPARTY_EXPAT)
SET(SDLIB_IGNORE TRUE) #Ignore: Use Expat
ENDIF(SDLIB_LIB STREQUAL "txml" AND OPTION_3RDPARTY_EXPAT)
IF(SDLIB_LIB STREQUAL "ephemeris" OR SDLIB_LIB STREQUAL "STATIC")
SET(SDLIB_IGNORE TRUE)
ENDIF(SDLIB_LIB STREQUAL "ephemeris" OR SDLIB_LIB STREQUAL "STATIC")
IF(NOT SDLIB_IGNORE)
SET(SDLIB_LIBRARIES ${SDLIB_LIBRARIES} ${SDLIB_LIB}${SDLIB_TARGET_SUFFIX})
#MESSAGE(STATUS "ADD_SDLIB_LIBRARY : SDLIB_LIBRARIES = ${SDLIB_LIBRARIES}")
ENDIF(NOT SDLIB_IGNORE)
ENDFOREACH(SDLIB_LIB ${SDLIB_LIBS})
#MESSAGE(STATUS "TARGET_LINK_LIBRARIES(${TARGET} ${SDLIB_LIBRARIES})")
TARGET_LINK_LIBRARIES(${TARGET} ${SDLIB_LIBRARIES})
# FIX: most libraries require this interface library.
TARGET_LINK_LIBRARIES(${TARGET} interfaces)
ENDMACRO(ADD_SDLIB_LIBRARY TARGET)