From 2f66365cfb3c6fec9bb0aa4316a9c4eb0e4a6f23 Mon Sep 17 00:00:00 2001 From: "Frank T. Bergmann" Date: Fri, 15 Jul 2022 08:54:22 +0200 Subject: [PATCH 1/2] #240: fix libxml compile tests, in case they require linking against math --- CMakeModules/FindLIBXML.cmake | 19 ++++++++++++++----- 1 file changed, 14 insertions(+), 5 deletions(-) diff --git a/CMakeModules/FindLIBXML.cmake b/CMakeModules/FindLIBXML.cmake index 8e63181381..73e5f5ae78 100644 --- a/CMakeModules/FindLIBXML.cmake +++ b/CMakeModules/FindLIBXML.cmake @@ -1,3 +1,5 @@ +include(CheckLibraryExists) + string(TOUPPER ${PROJECT_NAME} _UPPER_PROJECT_NAME) set(_PROJECT_DEPENDENCY_DIR ${_UPPER_PROJECT_NAME}_DEPENDENCY_DIR) @@ -23,7 +25,7 @@ find_path(LIBXML_INCLUDE_DIR PATHS ${${_PROJECT_DEPENDENCY_DIR}}/include ${${_PROJECT_DEPENDENCY_DIR}}/include/libxml2 NO_DEFAULT_PATH -) +) if (NOT LIBXML_INCLUDE_DIR) @@ -71,6 +73,13 @@ if (WIN32) set(ADDITIONAL_LIBS "ws2_32.lib;${ADDITIONAL_LIBS}") endif() + +CHECK_LIBRARY_EXISTS(m sin "" HAVE_LIB_M) + +if (HAVE_LIB_M) + set(ADDITIONAL_LIBS ${ADDITIONAL_LIBS} m) +endif (HAVE_LIB_M) + if(NOT TARGET LIBXML::LIBXML) add_library(LIBXML::LIBXML UNKNOWN IMPORTED) set_target_properties(LIBXML::LIBXML PROPERTIES @@ -83,7 +92,7 @@ endif() # figure out if we need XML_STATIC flag if (LIBXML_INCLUDE_DIR AND LIBXML_LIBRARY) - + set(LIBXML_LIBXML_CODE " #include @@ -130,10 +139,10 @@ if (LIBXML_LIBXML_TEST2) ) else() message(FATAL_ERROR "Unable to compile a test executable against LIBXML - + LIBXML_INCLUDE_DIR = ${LIBXML_INCLUDE_DIR} LIBXML_LIBRARY = ${LIBXML_LIBRARY} - + ") endif() @@ -143,7 +152,7 @@ set(CMAKE_REQUIRED_LIBRARIES ${CMAKE_REQUIRED_LIBRARIES_CACHE}) set(CMAKE_REQUIRED_INCLUDES ${CMAKE_REQUIRED_INCLUDES_CACHE}) set(CMAKE_REQUIRED_DEFINITIONS ${CMAKE_REQUIRED_DEFINITIONS_CACHE}) endif() - + include(FindPackageHandleStandardArgs) find_package_handle_standard_args( From 6acbbf598cdde4a8082021a5155f24488c765242 Mon Sep 17 00:00:00 2001 From: "Frank T. Bergmann" Date: Fri, 15 Jul 2022 08:54:43 +0200 Subject: [PATCH 2/2] - dont find expat if target already exists --- CMakeLists.txt | 2 ++ 1 file changed, 2 insertions(+) diff --git a/CMakeLists.txt b/CMakeLists.txt index 53a0d2eafc..a7b8407299 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -419,7 +419,9 @@ set(LIBSBML_XML_LIBRARY_LIBS) if(WITH_EXPAT) + if(NOT TARGET EXPAT::EXPAT) find_package(EXPAT REQUIRED) + endif() add_definitions( -DUSE_EXPAT ) list(APPEND SWIG_EXTRA_ARGS -DUSE_EXPAT)