From cef299eb4203c64da8fbfd1b2e434d8b2783501b Mon Sep 17 00:00:00 2001 From: Nehal J Wani Date: Tue, 16 Feb 2021 18:38:18 -0500 Subject: [PATCH] CMake: Add support for GNU Triangulated Surface Library --- CMakeLists.txt | 1 + cmake/FindGTS.cmake | 50 +++++++++++++++++++++++++++++++++++++ cmake/config_checks.cmake | 1 + config-cmake.h.in | 1 + lib/neatogen/CMakeLists.txt | 11 ++++++++ 5 files changed, 64 insertions(+) create mode 100644 cmake/FindGTS.cmake diff --git a/CMakeLists.txt b/CMakeLists.txt index e425ae38c..2883c2565 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -113,6 +113,7 @@ if(with_expat) endif() find_package(GD) +find_package(GTS) if(enable_ltdl) find_package(LTDL) diff --git a/cmake/FindGTS.cmake b/cmake/FindGTS.cmake new file mode 100644 index 000000000..ae4176abe --- /dev/null +++ b/cmake/FindGTS.cmake @@ -0,0 +1,50 @@ +include(FindPackageHandleStandardArgs) +if(WIN32) + find_path(GTS_INCLUDE_DIR gts.h) + find_path(GLIB_INCLUDE_DIR glib.h PATH_SUFFIXES glib-2.0) + find_path(GLIBCONFIG_INCLUDE_DIR glibconfig.h + PATH_SUFFIXES glib-2.0/include lib/glib-2.0/include) + + find_library(GTS_LIBRARY NAMES gts) + find_library(GLIB_LIBRARY NAMES glib-2.0) + + find_program(GTS_RUNTIME_LIBRARY gts.dll) + find_program(GLIB_RUNTIME_LIBRARY NAMES glib-2.dll libglib-2.0-0.dll) + + find_package_handle_standard_args(GTS DEFAULT_MSG + GTS_INCLUDE_DIR + GLIB_INCLUDE_DIR + GLIBCONFIG_INCLUDE_DIR + + GTS_LIBRARY + GLIB_LIBRARY + + GTS_RUNTIME_LIBRARY + GLIB_RUNTIME_LIBRARY + ) + + set(GTS_INCLUDE_DIRS + ${GTS_INCLUDE_DIR} + ${GLIB_INCLUDE_DIR} + ${GLIBCONFIG_INCLUDE_DIR} + ) + + set(GTS_LIBRARIES + ${GTS_LIBRARY} + ${GLIB_LIBRARY} + ) + + set(GTS_RUNTIME_LIBRARIES + ${GTS_RUNTIME_LIBRARY} + ${GLIB_RUNTIME_LIBRARY} + ) +else() + find_package(PkgConfig) + pkg_check_modules(GTS gts) + + find_package_handle_standard_args(GTS DEFAULT_MSG + GTS_INCLUDE_DIRS + GTS_LIBRARIES + GTS_LINK_LIBRARIES + ) +endif() diff --git a/cmake/config_checks.cmake b/cmake/config_checks.cmake index 8046df3e3..d633d0749 100644 --- a/cmake/config_checks.cmake +++ b/cmake/config_checks.cmake @@ -32,6 +32,7 @@ if(with_expat AND EXPAT_FOUND) set(HAVE_EXPAT 1) endif() set( HAVE_LIBGD ${GD_FOUND} ) +set( HAVE_GTS ${GTS_FOUND} ) if(with_zlib AND ZLIB_FOUND) set(HAVE_ZLIB 1) endif() diff --git a/config-cmake.h.in b/config-cmake.h.in index c850d221b..6017b42b1 100644 --- a/config-cmake.h.in +++ b/config-cmake.h.in @@ -39,6 +39,7 @@ typedef SSIZE_T ssize_t; #cmakedefine HAVE_GD_FREETYPE #cmakedefine HAVE_GD_GIF #cmakedefine HAVE_ZLIB +#cmakedefine HAVE_GTS // Values #define BROWSER "@BROWSER@" diff --git a/lib/neatogen/CMakeLists.txt b/lib/neatogen/CMakeLists.txt index 129e65faf..728a2b0ce 100644 --- a/lib/neatogen/CMakeLists.txt +++ b/lib/neatogen/CMakeLists.txt @@ -105,4 +105,15 @@ target_link_libraries(neatogen PRIVATE gvc pathplan sparse + rbtree ) + +if(GTS_FOUND) + target_include_directories(neatogen PRIVATE + ${GTS_INCLUDE_DIRS} + ) + + target_link_libraries(neatogen PRIVATE + ${GTS_LINK_LIBRARIES} + ) +endif() -- 2.50.1