| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263 |
- # 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 ()
|