67 lines
1.6 KiB
CMake
67 lines
1.6 KiB
CMake
|
if (CMAKE_SYSTEM_NAME STREQUAL "Linux")
|
||
|
check_cxx_source_compiles(
|
||
|
"#include <sys/random.h>
|
||
|
int main(void) {
|
||
|
return 0;
|
||
|
}
|
||
|
"
|
||
|
HAVE_GETRANDOM)
|
||
|
|
||
|
if (NOT HAVE_GETRANDOM)
|
||
|
# on older (GLibC < 2.25) fall back to /dev/urandom
|
||
|
set(XML_DEV_URANDOM 1)
|
||
|
else()
|
||
|
message(STATUS "Found <sys/random.h>")
|
||
|
endif()
|
||
|
endif()
|
||
|
|
||
|
|
||
|
configure_file (
|
||
|
"${PROJECT_SOURCE_DIR}/3rdparty/expat/expat_config_cmake.in"
|
||
|
"${PROJECT_BINARY_DIR}/3rdparty/expat/simgear_expat_config.h"
|
||
|
)
|
||
|
|
||
|
set(expat_sources
|
||
|
asciitab.h
|
||
|
hashtable.h
|
||
|
iasciitab.h
|
||
|
latin1tab.h
|
||
|
nametab.h
|
||
|
utf8tab.h
|
||
|
xmldef.h
|
||
|
xmlparse.h
|
||
|
xmlrole.h
|
||
|
xmltok.h
|
||
|
xmltok_impl.h
|
||
|
hashtable.c
|
||
|
xmlparse.c
|
||
|
xmlrole.c
|
||
|
xmltok.c
|
||
|
internal.h
|
||
|
ascii.h
|
||
|
sg_expat.h
|
||
|
sg_expat_external.h
|
||
|
)
|
||
|
|
||
|
add_library(FGExpat STATIC ${expat_sources})
|
||
|
|
||
|
target_include_directories(FGExpat BEFORE PUBLIC
|
||
|
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}>
|
||
|
$<INSTALL_INTERFACE:include>)
|
||
|
|
||
|
# for the config file above
|
||
|
target_include_directories(FGExpat PRIVATE ${PROJECT_BINARY_DIR}/3rdparty/expat)
|
||
|
|
||
|
target_compile_definitions(FGExpat PUBLIC HAVE_SIMGEAR_EXPAT_CONFIG_H XML_STATIC)
|
||
|
|
||
|
# look like Expat found by find()
|
||
|
add_library(EXPAT::EXPAT ALIAS FGExpat)
|
||
|
|
||
|
# in the non-shared case, we need to export these as well
|
||
|
if (NOT SIMGEAR_SHARED)
|
||
|
install(TARGETS FGExpat
|
||
|
EXPORT SimGearTargets
|
||
|
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
|
||
|
ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR})
|
||
|
endif()
|