# Copyright (c) 2008-2023 the Urho3D project # Copyright (c) 2022-2023 the Dviglo project # License: MIT # Check existence of various header files and their functions required by some of the third-party libraries and Urho3D library # Set the CMake variables in this scope but only add the compiler defines in the respective library's scope include (CheckIncludeFile) foreach (HEADER stdint.h inttypes.h malloc.h) string (TOUPPER HAVE_${HEADER} HAVE_HEADER) string (REPLACE . _ HAVE_HEADER ${HAVE_HEADER}) check_include_file (${HEADER} ${HAVE_HEADER}) endforeach () include (CheckFunctionExists) foreach (FUNCT __sincosf malloc_usable_size) string (TOUPPER HAVE_${FUNCT} HAVE_FUNCT) check_function_exists (${FUNCT} ${HAVE_FUNCT}) endforeach () include (CheckLibraryExists) check_library_exists (m sincosf "" HAVE_SINCOSF) if (MINGW) include (CheckStructHasMember) check_struct_has_member (RTL_OSVERSIONINFOW dwOSVersionInfoSize minwindef.h\;winnt.h HAVE_RTL_OSVERSIONINFOW) endif () # Setup RPATH settings if (URHO3D_LIB_TYPE STREQUAL SHARED AND NOT WIN32 AND NOT ANDROID AND NOT IOS AND NOT TVOS AND NOT WEB) # Add RPATH entries when building set (CMAKE_SKIP_BUILD_RPATH FALSE) # And set the RPATH entries so that the executable works both in the build tree and install destination set (CMAKE_BUILD_WITH_INSTALL_RPATH TRUE) if (APPLE) set (CMAKE_MACOSX_RPATH TRUE) set (ORIGIN @loader_path) else () set (ORIGIN $ORIGIN) endif () # Library location relative to the executable in the build tree set (CMAKE_INSTALL_RPATH ${ORIGIN}/../lib) # Library location relative to the executable in the tool directory in the build tree list (APPEND CMAKE_INSTALL_RPATH ${ORIGIN}/../../lib) # The tools are installed one directory further down from normal executable # Library location relative to the executable in the install destination list (APPEND CMAKE_INSTALL_RPATH ${ORIGIN}/../lib${LIB_SUFFIX}/${PATH_SUFFIX}) # The library location is based on SDK install destination # Library location relative to the executable in the tool directory in the install destination list (APPEND CMAKE_INSTALL_RPATH ${ORIGIN}/../../lib${LIB_SUFFIX}/${PATH_SUFFIX}) # The last entry to the install destination of the library, if the destination location is not in the system default search path, e.g. /usr/local/lib list (FIND CMAKE_PLATFORM_IMPLICIT_LINK_DIRECTORIES ${CMAKE_INSTALL_PREFIX}/lib${LIB_SUFFIX} isSystemDir) if (isSystemDir STREQUAL -1) list (APPEND CMAKE_INSTALL_RPATH ${CMAKE_INSTALL_PREFIX}/${DEST_LIBRARY_DIR}) endif () endif () add_subdirectory (ThirdParty) add_subdirectory (Urho3D) # In order to get clean module segregation, always exclude player/samples from AAR if (NOT ANDROID) add_subdirectory (Tools) add_subdirectory (Samples) endif () if (URHO3D_EXTRAS) add_subdirectory (Extras) endif ()