Merge branch 'modern-cmake' of pramsey/geos into master
continuous-integration/drone/push Build is passing
Details
continuous-integration/drone/push Build is passing
Details
commit
b15fd11718
|
|
@ -37,6 +37,8 @@ end_of_line = crlf
|
|||
[CMakeLists.txt]
|
||||
indent_style = space
|
||||
indent_size = 2
|
||||
trim_trailing_whitespace = true
|
||||
insert_final_newline = true
|
||||
|
||||
# CMake modules
|
||||
[*.cmake]
|
||||
|
|
|
|||
|
|
@ -1,4 +1,5 @@
|
|||
/*build*
|
||||
/*install*
|
||||
aclocal.m4
|
||||
Makefile.in
|
||||
Makefile
|
||||
|
|
|
|||
541
CMakeLists.txt
541
CMakeLists.txt
|
|
@ -1,336 +1,263 @@
|
|||
#################################################################################
|
||||
##############################################################################
|
||||
# Part of CMake configuration for GEOS
|
||||
#
|
||||
# Main GEOS build configuration file for CMake build system
|
||||
#
|
||||
# Copyright (C) 2009 Mateusz Loskot <mateusz@loskot.net>
|
||||
# Copyright (C) 2018-2019 Mateusz Loskot <mateusz@loskot.net>
|
||||
#
|
||||
# This is free software; you can redistribute and/or modify it under
|
||||
# the terms of the GNU Lesser General Public Licence as published
|
||||
# by the Free Software Foundation.
|
||||
# See the COPYING file for more information.
|
||||
#
|
||||
#################################################################################
|
||||
cmake_minimum_required(VERSION 3.1.3)
|
||||
##############################################################################
|
||||
|
||||
if(NOT CMAKE_VERSION)
|
||||
set(CMAKE_VERSION
|
||||
"${CMAKE_MAJOR_VERSION}.${CMAKE_MINOR_VERSION}.${CMAKE_PATCH_VERSION}")
|
||||
# Require CMake 3.8+ with support for meta-features that request compiler
|
||||
# modes for specific C/C++ language standard levels.
|
||||
cmake_minimum_required(VERSION 3.8)
|
||||
|
||||
# Require CMake 3.14+ with VS generator for complete support of VS versions.
|
||||
if(${CMAKE_GENERATOR} MATCHES "Visual Studio")
|
||||
cmake_minimum_required(VERSION 3.14 FATAL_ERROR)
|
||||
endif()
|
||||
|
||||
if(POLICY CMP0048)
|
||||
cmake_policy(SET CMP0048 NEW)
|
||||
list(APPEND CMAKE_MODULE_PATH "${PROJECT_SOURCE_DIR}/cmake")
|
||||
|
||||
# TODO: Follow CMake detection of git and version tagging
|
||||
# https://gitlab.kitware.com/cmake/cmake/blob/master/Source/CMakeVersionSource.cmake
|
||||
if(EXISTS ${CMAKE_SOURCE_DIR}/.git/HEAD)
|
||||
set(GEOS_BUILD_FROM_GIT ON)
|
||||
endif()
|
||||
#################################################################################
|
||||
# Set GEOS project
|
||||
#################################################################################
|
||||
project(GEOS LANGUAGES C CXX)
|
||||
|
||||
# Add custom GEOS modules for CMake
|
||||
list(APPEND CMAKE_MODULE_PATH "${PROJECT_SOURCE_DIR}/cmake/modules")
|
||||
#-----------------------------------------------------------------------------
|
||||
# Options
|
||||
#-----------------------------------------------------------------------------
|
||||
include(CMakeDependentOption)
|
||||
|
||||
#################################################################################
|
||||
# Set C++ standard
|
||||
#################################################################################
|
||||
set(CMAKE_CXX_STANDARD 11)
|
||||
## CMake global variables
|
||||
option(BUILD_SHARED_LIBS "Build GEOS with shared libraries" ON)
|
||||
set(CMAKE_CXX_STANDARD 11 CACHE STRING "C++ standard version to use (default is 11)")
|
||||
|
||||
## GEOS custom variables
|
||||
cmake_dependent_option(GEOS_BUILD_DEVELOPER
|
||||
"Build with compilation flags useful for development" ON
|
||||
"GEOS_BUILD_FROM_GIT" OFF)
|
||||
mark_as_advanced(GEOS_BUILD_DEVELOPER)
|
||||
|
||||
#-----------------------------------------------------------------------------
|
||||
# Version
|
||||
#-----------------------------------------------------------------------------
|
||||
file(READ Version.txt _version_txt)
|
||||
|
||||
string(REGEX MATCH "GEOS_VERSION_MAJOR=([0-9]+)" _ ${_version_txt})
|
||||
set(_version_major ${CMAKE_MATCH_1})
|
||||
string(REGEX MATCH "GEOS_VERSION_MINOR=([0-9]+)" _ ${_version_txt})
|
||||
set(_version_minor ${CMAKE_MATCH_1})
|
||||
string(REGEX MATCH "GEOS_VERSION_PATCH=([0-9]+)" _ ${_version_txt})
|
||||
set(_version_patch ${CMAKE_MATCH_1})
|
||||
# OPTIONS: "", "dev", "rc1" etc.
|
||||
string(REGEX MATCH "GEOS_PATCH_WORD=([a-zA-Z0-9]+)" _ ${_version_txt})
|
||||
set(_version_patch_word ${CMAKE_MATCH_1})
|
||||
|
||||
# Version of JTS this release is bound to
|
||||
string(REGEX MATCH "JTS_PORT=([0-9a-zA-Z\.]+)" _ ${_version_txt})
|
||||
set(JTS_PORT ${CMAKE_MATCH_1})
|
||||
|
||||
# Version of public C API
|
||||
string(REGEX MATCH "CAPI_INTERFACE_CURRENT=([0-9]+)" _ ${_version_txt})
|
||||
set(_version_capi_current ${CMAKE_MATCH_1})
|
||||
string(REGEX MATCH "CAPI_INTERFACE_REVISION=([0-9]+)" _ ${_version_txt})
|
||||
set(_version_capi_revision ${CMAKE_MATCH_1})
|
||||
string(REGEX MATCH "CAPI_INTERFACE_AGE=([0-9]+)" _ ${_version_txt})
|
||||
set(_version_capi_age ${CMAKE_MATCH_1})
|
||||
|
||||
unset(_version_txt)
|
||||
|
||||
math(EXPR _version_capi_major "${_version_capi_current} - ${_version_capi_age}")
|
||||
set(CAPI_VERSION_MAJOR ${_version_capi_major})
|
||||
set(CAPI_VERSION_MINOR ${_version_capi_age})
|
||||
set(CAPI_VERSION_PATCH ${_version_capi_revision})
|
||||
set(CAPI_VERSION "${_version_capi_major}.${_version_capi_age}.${_version_capi_revision}")
|
||||
if(NOT WIN32)
|
||||
set(CAPI_SOVERSION ${_version_capi_age})
|
||||
endif()
|
||||
|
||||
unset(_version_capi_current)
|
||||
unset(_version_capi_major)
|
||||
unset(_version_capi_age)
|
||||
unset(_version_capi_revision)
|
||||
|
||||
#-----------------------------------------------------------------------------
|
||||
# Project
|
||||
#-----------------------------------------------------------------------------
|
||||
if(CMAKE_VERSION VERSION_GREATER_EQUAL 3.9)
|
||||
list(APPEND _project_info DESCRIPTION "GEOS - C++ port of the Java Topology Suite (JTS)")
|
||||
endif()
|
||||
if(CMAKE_VERSION VERSION_GREATER_EQUAL 3.12)
|
||||
list(APPEND _project_info HOMEPAGE_URL "http://geos.osgeo.org")
|
||||
endif()
|
||||
|
||||
project(GEOS VERSION "${_version_major}.${_version_minor}.${_version_patch}"
|
||||
LANGUAGES C CXX
|
||||
${_project_info})
|
||||
|
||||
if("${_version_patch_word}" STREQUAL "")
|
||||
set(GEOS_VERSION_FULL "${GEOS_VERSION}")
|
||||
else()
|
||||
set(GEOS_VERSION_FULL "${GEOS_VERSION}-${_version_patch_word}")
|
||||
endif()
|
||||
|
||||
unset(_version_major)
|
||||
unset(_version_minor)
|
||||
unset(_version_patch)
|
||||
unset(_version_patch_word)
|
||||
|
||||
message(STATUS "GEOS: Version ${GEOS_VERSION_FULL}")
|
||||
message(STATUS "GEOS: C API soversion ${CAPI_SOVERSION}")
|
||||
message(STATUS "GEOS: JTS port ${JTS_PORT}")
|
||||
|
||||
#-----------------------------------------------------------------------------
|
||||
# C++ language version and compilation flags
|
||||
#-----------------------------------------------------------------------------
|
||||
message(STATUS "GEOS: Require C++${CMAKE_CXX_STANDARD}")
|
||||
set(CMAKE_CXX_STANDARD_REQUIRED ON)
|
||||
set(CMAKE_CXX_EXTENSIONS OFF)
|
||||
|
||||
message(STATUS "Setting C++ requirement to C++${CMAKE_CXX_STANDARD}")
|
||||
#-----------------------------------------------------------------------------
|
||||
# Target geos_cxx_flags: common compilation flags
|
||||
#-----------------------------------------------------------------------------
|
||||
add_library(geos_cxx_flags INTERFACE)
|
||||
target_compile_features(geos_cxx_flags INTERFACE cxx_std_11)
|
||||
|
||||
#################################################################################
|
||||
# Setup GEOS version
|
||||
#################################################################################
|
||||
|
||||
# READ GEOS VERSIONS FROM FILE
|
||||
file(READ "Version.txt" VERSION_TXT)
|
||||
|
||||
string(REGEX MATCH "GEOS_VERSION_MAJOR=([0-9]+)" _ ${VERSION_TXT})
|
||||
set(GEOS_VERSION_MAJOR ${CMAKE_MATCH_1})
|
||||
|
||||
string(REGEX MATCH "GEOS_VERSION_MINOR=([0-9]+)" _ ${VERSION_TXT})
|
||||
set(GEOS_VERSION_MINOR ${CMAKE_MATCH_1})
|
||||
|
||||
string(REGEX MATCH "GEOS_VERSION_PATCH=([0-9]+)" _ ${VERSION_TXT})
|
||||
set(GEOS_VERSION_PATCH ${CMAKE_MATCH_1})
|
||||
|
||||
# OPTIONS: "", "dev", "rc1" etc.
|
||||
string(REGEX MATCH "GEOS_PATCH_WORD=([a-zA-Z0-9]+)" _ ${VERSION_TXT})
|
||||
set(GEOS_PATCH_WORD ${CMAKE_MATCH_1})
|
||||
|
||||
string(REGEX MATCH "CAPI_INTERFACE_CURRENT=([0-9]+)" _ ${VERSION_TXT})
|
||||
set(CAPI_INTERFACE_CURRENT ${CMAKE_MATCH_1})
|
||||
|
||||
string(REGEX MATCH "CAPI_INTERFACE_REVISION=([0-9]+)" _ ${VERSION_TXT})
|
||||
set(CAPI_INTERFACE_REVISION ${CMAKE_MATCH_1})
|
||||
|
||||
string(REGEX MATCH "CAPI_INTERFACE_AGE=([0-9]+)" _ ${VERSION_TXT})
|
||||
set(CAPI_INTERFACE_AGE ${CMAKE_MATCH_1})
|
||||
|
||||
# GEOS release version
|
||||
# GEOS C++ library SONAME will use these encoding ABI break at every release
|
||||
set(GEOS_VERSION "${GEOS_VERSION_MAJOR}.${GEOS_VERSION_MINOR}.${GEOS_VERSION_PATCH}${GEOS_PATCH_WORD}")
|
||||
set(VERSION "${GEOS_VERSION}")
|
||||
|
||||
# Copy version components into different variable names to match those used
|
||||
# by autotools for *.h.in files
|
||||
set(VERSION_MAJOR "${GEOS_VERSION_MAJOR}")
|
||||
set(VERSION_MINOR "${GEOS_VERSION_MINOR}")
|
||||
set(VERSION_PATCH "${GEOS_VERSION_PATCH}${GEOS_PATCH_WORD}")
|
||||
|
||||
# JTS_PORT is the version of JTS this release is bound to
|
||||
string(REGEX MATCH "JTS_PORT=([0-9a-zA-Z\.]+)" _ ${VERSION_TXT})
|
||||
set(JTS_PORT ${CMAKE_MATCH_1})
|
||||
message(STATUS "Setting GEOS version ${VERSION} as port of JTS ${JTS_PORT}")
|
||||
|
||||
|
||||
math(EXPR CAPI_VERSION_MAJOR "${CAPI_INTERFACE_CURRENT} - ${CAPI_INTERFACE_AGE}")
|
||||
set(CAPI_VERSION_MINOR ${CAPI_INTERFACE_AGE})
|
||||
set(CAPI_VERSION_PATCH ${CAPI_INTERFACE_REVISION})
|
||||
set(CAPI_VERSION "${CAPI_VERSION_MAJOR}.${CAPI_VERSION_MINOR}.${CAPI_VERSION_PATCH}")
|
||||
message(STATUS "Setting GEOS C API version ${CAPI_VERSION}")
|
||||
if (NOT WIN32)
|
||||
set(CAPI_SOVERSION ${CAPI_VERSION_MAJOR})
|
||||
message(STATUS "Setting GEOS C API soversion ${CAPI_SOVERSION}")
|
||||
#-----------------------------------------------------------------------------
|
||||
# Target geos_cxx_flags: common compilation flags
|
||||
#-----------------------------------------------------------------------------
|
||||
option(DISABLE_GEOS_INLINE "Disable inlining" OFF)
|
||||
if(NOT DISABLE_GEOS_INLINE)
|
||||
target_compile_definitions(geos_cxx_flags INTERFACE GEOS_INLINE)
|
||||
endif()
|
||||
|
||||
#################################################################################
|
||||
# Check custom global options
|
||||
#################################################################################
|
||||
#-----------------------------------------------------------------------------
|
||||
# Target geos_developer_cxx_flags: developer mode compilation flags
|
||||
#-----------------------------------------------------------------------------
|
||||
# Do NOT install this target for end-users!
|
||||
add_library(geos_developer_cxx_flags INTERFACE)
|
||||
|
||||
option(GEOS_ENABLE_INLINE
|
||||
"Set to OFF|ON (default) to control GEOS compilation with small functions inlining" ON)
|
||||
|
||||
if(NOT MSVC)
|
||||
option(GEOS_ENABLE_ASSERT
|
||||
"Set to ON|OFF (default) to build GEOS with assert() macro enabled" OFF)
|
||||
if(GEOS_BUILD_DEVELOPER)
|
||||
message(STATUS "GEOS: Developer mode enabled")
|
||||
endif()
|
||||
|
||||
option(GEOS_ENABLE_TESTS
|
||||
"Set to OFF|ON (default) to control build of GEOS tests package" ON)
|
||||
|
||||
option(GEOS_ENABLE_TESTS_UNIT2_ONLY
|
||||
"Set to ON|OFF (default) to enable only new tests based on Catch (WIP: experimental)." OFF)
|
||||
|
||||
option(GEOS_BUILD_STATIC
|
||||
"Set to OFF|ON (default) to build GEOS static libraries" ON)
|
||||
|
||||
option(GEOS_BUILD_SHARED
|
||||
"Set to OFF|ON (default) to build GEOS shared libraries" ON)
|
||||
|
||||
if(CMAKE_COMPILER_IS_GNUCC OR CMAKE_COMPILER_IS_GNUCXX)
|
||||
option(GEOS_ENABLE_FLOATSTORE
|
||||
"Set to OFF|ON (default) to control IEEE754 conformance and remove extra precision" ON)
|
||||
# geos_cxx_flags inherits properties from geos_developer_cxx_flags when
|
||||
# building as part of the GEOS repository or on explicit request for
|
||||
# developer compilation mode, as GEOS contributor.
|
||||
# The flags are intended only for GEOS itself and are not part of
|
||||
# usage requirements needed by GEOS consumers.
|
||||
if(GEOS_BUILD_DEVELOPER)
|
||||
target_link_libraries(geos_cxx_flags
|
||||
INTERFACE
|
||||
$<BUILD_INTERFACE:geos_developer_cxx_flags>)
|
||||
endif()
|
||||
|
||||
if(APPLE)
|
||||
option(GEOS_ENABLE_MACOSX_FRAMEWORK
|
||||
"Set to ON|OFF (default) to build GEOS as a Mac OS X framework" OFF)
|
||||
option(GEOS_ENABLE_MACOSX_FRAMEWORK_UNIXCOMPAT
|
||||
"Set to ON|OFF (default) to add Unix compatibility to the Mac OS X framework" OFF)
|
||||
target_compile_definitions(geos_developer_cxx_flags
|
||||
INTERFACE
|
||||
USE_UNSTABLE_GEOS_CPP_API)
|
||||
|
||||
target_compile_definitions(geos_developer_cxx_flags
|
||||
INTERFACE
|
||||
$<$<CXX_COMPILER_ID:MSVC>:_CRT_NONSTDC_NO_DEPRECATE>
|
||||
$<$<CXX_COMPILER_ID:MSVC>:_SCL_SECURE_NO_DEPRECATE>
|
||||
$<$<CXX_COMPILER_ID:MSVC>:_CRT_SECURE_NO_WARNINGS>
|
||||
$<$<CXX_COMPILER_ID:MSVC>:NOMINMAX>)
|
||||
|
||||
target_compile_options(geos_developer_cxx_flags
|
||||
INTERFACE
|
||||
$<$<CXX_COMPILER_ID:MSVC>:-W4>
|
||||
$<$<OR:$<CXX_COMPILER_ID:GNU>,$<CXX_COMPILER_ID:Clang>>:-pedantic -Wall -Wextra -Wno-long-long -Wcast-align -Wconversion -Wchar-subscripts -Wdouble-promotion -Wpointer-arith -Wformat -Wformat-security -Wshadow -Wuninitialized -Wunused-parameter -fno-common>
|
||||
$<$<CXX_COMPILER_ID:GNU>:-fno-implicit-inline-templates>)
|
||||
|
||||
# Disable TTMath ASM support on MinGW (Windows+GCC)
|
||||
# due to build issues
|
||||
if(MINGW)
|
||||
target_compile_definitions(geos_cxx_flags
|
||||
INTERFACE TTMATH_NOASM)
|
||||
endif()
|
||||
|
||||
#################################################################################
|
||||
# Setup C/C++ compiler options
|
||||
#################################################################################
|
||||
if(NOT MSVC_IDE)
|
||||
if(NOT CMAKE_BUILD_TYPE)
|
||||
set(CMAKE_BUILD_TYPE Debug CACHE STRING
|
||||
"Choose the type of build, options are: None Debug Release" FORCE)
|
||||
endif()
|
||||
message(STATUS "Setting GEOS build type - ${CMAKE_BUILD_TYPE}")
|
||||
endif()
|
||||
|
||||
if(CMAKE_BUILD_TYPE STREQUAL Debug)
|
||||
add_definitions(-D_DEBUG)
|
||||
endif()
|
||||
|
||||
add_definitions(-DUSE_UNSTABLE_GEOS_CPP_API)
|
||||
|
||||
if(CMAKE_COMPILER_IS_GNUCC OR CMAKE_COMPILER_IS_GNUCXX)
|
||||
|
||||
# General options
|
||||
set(CMAKE_C_FLAGS "-pedantic -ansi ${CMAKE_C_FLAGS}")
|
||||
|
||||
# Numerical stability
|
||||
if(GEOS_ENABLE_FLOATSTORE)
|
||||
# Remove extra precision by forcing conformance to IEEE 754 rather than IEEE 854
|
||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -ffloat-store")
|
||||
endif()
|
||||
message(STATUS
|
||||
"Forcing IEEE 754 using flag -ffloat-store - ${GEOS_ENABLE_FLOATSTORE}")
|
||||
|
||||
# Warnings specification
|
||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -Wno-long-long -fno-implicit-inline-templates -Wconversion -pedantic -W -Wunused -Wuninitialized -Wextra -Wdouble-promotion -Wshadow")
|
||||
|
||||
# Turn on Position Independent Code generation for GEOS C shared library
|
||||
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fPIC -Wall -Wconversion -pedantic -Wmissing-prototypes -W -Wunused -Wuninitialized -Wextra -Wdouble-promotion")
|
||||
|
||||
# Enable glibc ISO C99 features (macros isfinite, isnan)
|
||||
set(CMAKE_REQUIRED_DEFINITIONS "${CMAKE_REQUIRED_DEFINITIONS} -D_ISOC99_SOURCE=1")
|
||||
|
||||
# For now, punt on ASM on MinGW (Windows+GCC)
|
||||
if(WIN32)
|
||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DTTMATH_NOASM")
|
||||
message(STATUS "Setting TTMATH_NOASM")
|
||||
endif()
|
||||
|
||||
elseif(MSVC)
|
||||
|
||||
# Set pedantic mode by default
|
||||
#set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /W4")
|
||||
string(REGEX REPLACE "/W[0-9]" "/W4" CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS}")
|
||||
|
||||
if(MSVC)
|
||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /MP")
|
||||
|
||||
add_definitions(-D_SCL_SECURE_NO_WARNINGS)
|
||||
add_definitions(-D_CRT_SECURE_NO_WARNINGS)
|
||||
add_definitions(-DNOMINMAX)
|
||||
endif()
|
||||
|
||||
endif()
|
||||
|
||||
if(GEOS_ENABLE_INLINE)
|
||||
add_definitions(-DGEOS_INLINE)
|
||||
endif()
|
||||
message(STATUS
|
||||
"Setting GEOS compilation with small functions inlining - ${GEOS_ENABLE_INLINE}")
|
||||
|
||||
if(NOT MSVC)
|
||||
if(GEOS_ENABLE_ASSERT)
|
||||
string(REGEX REPLACE "[-/]D.*NDEBUG" "-U NDEBUG"
|
||||
CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE}")
|
||||
endif()
|
||||
message(STATUS
|
||||
"Setting GEOS compilation with assert() macro enabled - ${GEOS_ENABLE_ASSERT}")
|
||||
endif()
|
||||
|
||||
#################################################################################
|
||||
# Setup C/C++ library features
|
||||
#################################################################################
|
||||
if (false)
|
||||
# check header files
|
||||
include(CheckIncludeFiles)
|
||||
|
||||
check_include_files(stdint.h HAVE_STDINT_H)
|
||||
check_include_files(inttypes.h HAVE_INTTYPES_H)
|
||||
check_include_files(ieeefp.h HAVE_IEEEFP_H)
|
||||
|
||||
# check types and sizes
|
||||
include(CheckTypeSize)
|
||||
|
||||
if(MSVC)
|
||||
check_type_size("__int64" HAVE_INT64_T_64)
|
||||
else()
|
||||
if(HAVE_STDINT_H OR HAVE_INTTYPES_H)
|
||||
check_type_size("int64_t" HAVE_INT64_T_64)
|
||||
else()
|
||||
check_type_size("long long int" HAVE_LONG_LONG_INT_64)
|
||||
endif()
|
||||
endif()
|
||||
endif()
|
||||
|
||||
################################################################################
|
||||
# Setup build directories
|
||||
#################################################################################
|
||||
|
||||
# Put the libaries and binaries that get built into directories at the
|
||||
# top of the build tree rather than in hard-to-find leaf
|
||||
# directories. This simplifies manual testing and the use of the build
|
||||
# tree rather than installed Boost libraries.
|
||||
set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/lib)
|
||||
set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/lib)
|
||||
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin)
|
||||
|
||||
################################################################################
|
||||
# Setup include directories
|
||||
#################################################################################
|
||||
|
||||
# for including GEOS C++ API headers
|
||||
include_directories(${PROJECT_SOURCE_DIR}/include)
|
||||
|
||||
# for including build-specific GEOS C API headers
|
||||
include_directories(${PROJECT_BINARY_DIR}/capi)
|
||||
|
||||
# for including build-specific version.h and geos_c.h
|
||||
include_directories(${PROJECT_BINARY_DIR}/include)
|
||||
|
||||
# for geos_ts.cpp which does #include "../geos_revision.h" whereas
|
||||
# CMake generates geos_revision.h in build directory,
|
||||
# to not to pollute source tree.
|
||||
include_directories(${PROJECT_BINARY_DIR})
|
||||
|
||||
#################################################################################
|
||||
# Setup checks and generate config headers
|
||||
#################################################################################
|
||||
find_package(Git)
|
||||
|
||||
message(STATUS "Generating GEOS ${PROJECT_BINARY_DIR}/geos_revision.h")
|
||||
file(WRITE ${CMAKE_BINARY_DIR}/geos_revision.h.in "\#define GEOS_REVISION \"@GEOS_REVISION@\"\n")
|
||||
|
||||
file(WRITE ${CMAKE_BINARY_DIR}/geos_revision.cmake
|
||||
"
|
||||
execute_process(COMMAND \${GIT} describe --tags --always
|
||||
WORKING_DIRECTORY \${CWD}
|
||||
OUTPUT_VARIABLE GEOS_REVISION
|
||||
OUTPUT_STRIP_TRAILING_WHITESPACE)
|
||||
configure_file(\${SRC} \${DST} @ONLY)
|
||||
")
|
||||
|
||||
add_custom_target(geos_revision
|
||||
COMMAND ${CMAKE_COMMAND}
|
||||
-D CWD=${CMAKE_CURRENT_SOURCE_DIR}
|
||||
-D GIT=${GIT_EXECUTABLE}
|
||||
-D SRC=${PROJECT_BINARY_DIR}/geos_revision.h.in
|
||||
-D DST=${PROJECT_BINARY_DIR}/geos_revision.h
|
||||
-P ${PROJECT_BINARY_DIR}/geos_revision.cmake)
|
||||
|
||||
message(STATUS "Generating GEOS ${PROJECT_BINARY_DIR}/include/geos/version.h")
|
||||
configure_file(${PROJECT_SOURCE_DIR}/include/geos/version.h.in
|
||||
${PROJECT_BINARY_DIR}/include/geos/version.h @ONLY)
|
||||
|
||||
message(STATUS "Generating GEOS ${PROJECT_BINARY_DIR}/capi/geos_c.h")
|
||||
configure_file(${PROJECT_SOURCE_DIR}/capi/geos_c.h.in
|
||||
${PROJECT_BINARY_DIR}/capi/geos_c.h @ONLY)
|
||||
|
||||
#################################################################################
|
||||
# Configure tests
|
||||
#################################################################################
|
||||
|
||||
if(GEOS_ENABLE_TESTS OR GEOS_ENABLE_TESTS_UNIT2_ONLY)
|
||||
enable_testing()
|
||||
# Define "make check" as alias for "make test"
|
||||
add_custom_target(check COMMAND ctest)
|
||||
endif()
|
||||
|
||||
#################################################################################
|
||||
# IDE specifics
|
||||
#################################################################################
|
||||
if (MSVC_IDE)
|
||||
# Visual Studio 2017 supports .editorconfig, copy it next to generated .sln
|
||||
message(STATUS "Copying .editorconfig file to ${PROJECT_BINARY_DIR}")
|
||||
file(COPY "${PROJECT_SOURCE_DIR}/.editorconfig"
|
||||
DESTINATION "${PROJECT_BINARY_DIR}")
|
||||
endif()
|
||||
|
||||
include(GenerateSourceGroups)
|
||||
|
||||
# Enable target debugging for CMake Tools in Visual Studio Code
|
||||
# https://github.com/vector-of-bool/vscode-cmake-tools
|
||||
include(CMakeToolsHelpers OPTIONAL)
|
||||
|
||||
#################################################################################
|
||||
# Configure subdirectories
|
||||
#################################################################################
|
||||
#-----------------------------------------------------------------------------
|
||||
# Target geos: C++ API library
|
||||
#-----------------------------------------------------------------------------
|
||||
add_library(geos "")
|
||||
target_link_libraries(geos PUBLIC geos_cxx_flags)
|
||||
add_subdirectory(include)
|
||||
add_subdirectory(src)
|
||||
|
||||
if(BUILD_SHARED_LIBS)
|
||||
set_target_properties(geos PROPERTIES VERSION ${GEOS_VERSION})
|
||||
if(NOT WIN32)
|
||||
set_target_properties(geos PROPERTIES SOVERSION ${GEOS_VERSION_MAJOR})
|
||||
endif()
|
||||
endif()
|
||||
|
||||
#-----------------------------------------------------------------------------
|
||||
# Target geos_c: C API library
|
||||
#-----------------------------------------------------------------------------
|
||||
add_library(geos_c "")
|
||||
target_link_libraries(geos_c PRIVATE geos)
|
||||
add_subdirectory(capi)
|
||||
add_subdirectory(tests)
|
||||
|
||||
if(BUILD_SHARED_LIBS)
|
||||
set_target_properties(geos_c PROPERTIES VERSION ${GEOS_VERSION})
|
||||
if(NOT WIN32)
|
||||
set_target_properties(geos_c PROPERTIES SOVERSION ${GEOS_VERSION_MAJOR})
|
||||
endif()
|
||||
endif()
|
||||
|
||||
#-----------------------------------------------------------------------------
|
||||
# Tests
|
||||
#-----------------------------------------------------------------------------
|
||||
include(CTest)
|
||||
if(BUILD_TESTING)
|
||||
add_subdirectory(tests)
|
||||
endif()
|
||||
|
||||
#-----------------------------------------------------------------------------
|
||||
# Install and export targets - support 'make install' or equivalent
|
||||
#-----------------------------------------------------------------------------
|
||||
include(CMakePackageConfigHelpers)
|
||||
write_basic_package_version_file(
|
||||
"${CMAKE_CURRENT_BINARY_DIR}/geos-config-version.cmake"
|
||||
VERSION ${GEOS_VERSION}
|
||||
COMPATIBILITY AnyNewerVersion)
|
||||
|
||||
configure_file(cmake/geos-config.cmake
|
||||
"${CMAKE_CURRENT_BINARY_DIR}/geos-config.cmake"
|
||||
COPYONLY)
|
||||
|
||||
install(TARGETS geos geos_c geos_cxx_flags
|
||||
EXPORT geos-targets
|
||||
LIBRARY DESTINATION lib
|
||||
ARCHIVE DESTINATION lib
|
||||
RUNTIME DESTINATION bin
|
||||
INCLUDES DESTINATION include)
|
||||
|
||||
install(EXPORT geos-targets
|
||||
FILE geos-targets.cmake
|
||||
NAMESPACE GEOS::
|
||||
DESTINATION lib/cmake/GEOS)
|
||||
|
||||
install(FILES
|
||||
"${CMAKE_CURRENT_BINARY_DIR}/geos-config.cmake"
|
||||
"${CMAKE_CURRENT_BINARY_DIR}/geos-config-version.cmake"
|
||||
DESTINATION lib/cmake/GEOS)
|
||||
install(DIRECTORY
|
||||
"${CMAKE_CURRENT_LIST_DIR}/include/geos"
|
||||
"${CMAKE_CURRENT_BINARY_DIR}/include/geos"
|
||||
DESTINATION include
|
||||
FILES_MATCHING PATTERN "*.h")
|
||||
install(FILES "${CMAKE_CURRENT_BINARY_DIR}/capi/geos_c.h"
|
||||
DESTINATION include)
|
||||
|
||||
add_subdirectory(tools)
|
||||
|
||||
#################################################################################
|
||||
# Install/Uninstall
|
||||
#################################################################################
|
||||
#-----------------------------------------------------------------------------
|
||||
# Uninstall
|
||||
#-----------------------------------------------------------------------------
|
||||
|
||||
configure_file("${PROJECT_SOURCE_DIR}/cmake/cmake_uninstall.cmake.in"
|
||||
"${PROJECT_BINARY_DIR}/cmake/cmake_uninstall.cmake"
|
||||
|
|
@ -339,11 +266,3 @@ configure_file("${PROJECT_SOURCE_DIR}/cmake/cmake_uninstall.cmake.in"
|
|||
add_custom_target(uninstall
|
||||
"${CMAKE_COMMAND}" -P "${PROJECT_BINARY_DIR}/cmake/cmake_uninstall.cmake")
|
||||
|
||||
#################################################################################
|
||||
# DEBUG settings - TODO: make a summary
|
||||
|
||||
message(STATUS "CMake ${CMAKE_VERSION} successfully configured ${PROJECT_NAME} using ${CMAKE_GENERATOR} generator")
|
||||
|
||||
#message(STATUS "XXX: CMAKE_CXX_FLAGS=${CMAKE_CXX_FLAGS}")
|
||||
#message(STATUS "XXX: CMAKE_CXX_FLAGS_DEBUG=${CMAKE_CXX_FLAGS_DEBUG}")
|
||||
#message(STATUS "XXX: CMAKE_CXX_FLAGS_RELEASE=${CMAKE_CXX_FLAGS_RELEASE}")
|
||||
|
|
|
|||
|
|
@ -26,10 +26,10 @@ BUILT_SOURCES = geos_revision.h
|
|||
|
||||
EXTRA_DIST = acsite.m4 .editorconfig \
|
||||
Version.txt CMakeLists.txt \
|
||||
cmake/modules/CheckPrototypeExists.cmake \
|
||||
cmake/modules/COPYING-CMAKE-SCRIPTS \
|
||||
cmake/modules/GenerateSourceGroups.cmake \
|
||||
cmake/cmake_uninstall.cmake.in geos_revision.h \
|
||||
cmake/GenerateRevisionHeader.cmake \
|
||||
cmake/GetGitRevision.cmake \
|
||||
cmake/cmake_uninstall.cmake.in \
|
||||
cmake/geos-config.cmake \
|
||||
README.md
|
||||
|
||||
ACLOCAL_AMFLAGS = -I macros
|
||||
|
|
|
|||
162
appveyor.yml
162
appveyor.yml
|
|
@ -1,81 +1,81 @@
|
|||
version: 1.0.{build}
|
||||
|
||||
image: Visual Studio 2017
|
||||
|
||||
platform: x64
|
||||
|
||||
configuration: Release
|
||||
|
||||
shallow_clone: true
|
||||
clone_depth: 5
|
||||
|
||||
matrix:
|
||||
fast_finish: false # set this flag to immediately finish build once one of the jobs fails.
|
||||
|
||||
environment:
|
||||
matrix:
|
||||
- PLATFORM: x64
|
||||
BUILDER: CMake
|
||||
GENERATOR: "Visual Studio 15 2017 Win64"
|
||||
APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2017
|
||||
# - PLATFORM: x86
|
||||
# BUILDER: CMake
|
||||
# GENERATOR: "Visual Studio 15 2017"
|
||||
# APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2017
|
||||
# - PLATFORM: x64
|
||||
# BUILDER: CMake
|
||||
# GENERATOR: "NMake Makefiles"
|
||||
# APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2017
|
||||
# - PLATFORM: x86
|
||||
# BUILDER: CMake
|
||||
# GENERATOR: "NMake Makefiles"
|
||||
# APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2017
|
||||
# - PLATFORM: x64
|
||||
# BUILDER: CMake
|
||||
# GENERATOR: "Visual Studio 14 2015 Win64"
|
||||
# APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2015
|
||||
# - PLATFORM: x86
|
||||
# BUILDER: CMake
|
||||
# GENERATOR: "Visual Studio 14 2015"
|
||||
# APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2015
|
||||
# - PLATFORM: x64
|
||||
# BUILDER: CMake
|
||||
# GENERATOR: "NMake Makefiles"
|
||||
# APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2015
|
||||
- PLATFORM: x86
|
||||
BUILDER: CMake
|
||||
GENERATOR: "NMake Makefiles"
|
||||
APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2015
|
||||
|
||||
init:
|
||||
- ps: 'Write-Host "Building GEOS branch: $env:APPVEYOR_REPO_BRANCH" -ForegroundColor Magenta'
|
||||
#- ps: |
|
||||
# Write-Host "Build worker environment variables:" -ForegroundColor Magenta
|
||||
# Get-ChildItem Env: | %{"{0}={1}" -f $_.Name,$_.Value}
|
||||
- if "%APPVEYOR_BUILD_WORKER_IMAGE%"=="Visual Studio 2017" if "%GENERATOR%"=="NMake Makefiles" if "%PLATFORM%"=="x86" call "C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Auxiliary\Build\vcvars32.bat"
|
||||
- if "%APPVEYOR_BUILD_WORKER_IMAGE%"=="Visual Studio 2017" if "%GENERATOR%"=="NMake Makefiles" if "%PLATFORM%"=="x64" call "C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Auxiliary\Build\vcvars64.bat"
|
||||
- if "%APPVEYOR_BUILD_WORKER_IMAGE%"=="Visual Studio 2015" if "%GENERATOR%"=="NMake Makefiles" if "%PLATFORM%"=="x86" call "C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\vcvarsall.bat" x86
|
||||
- if "%APPVEYOR_BUILD_WORKER_IMAGE%"=="Visual Studio 2015" if "%GENERATOR%"=="NMake Makefiles" if "%PLATFORM%"=="x64" call "C:\Program Files\Microsoft SDKs\Windows\v7.1\Bin\SetEnv.cmd" /x64
|
||||
- if "%APPVEYOR_BUILD_WORKER_IMAGE%"=="Visual Studio 2015" if "%GENERATOR%"=="NMake Makefiles" if "%PLATFORM%"=="x64" call "C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\vcvarsall.bat" x86_amd64
|
||||
|
||||
before_build:
|
||||
- ps: 'Write-Host "Running $env:BUILDER with $env:GENERATOR" -ForegroundColor Magenta'
|
||||
- if "%BUILDER%"=="CMake" cmake.exe -G "%GENERATOR%" -DCMAKE_BUILD_TYPE=%CONFIGURATION% %APPVEYOR_BUILD_FOLDER%
|
||||
- if "%BUILDER%"=="NMake" .\autogen.bat
|
||||
|
||||
build_script:
|
||||
- ps: 'Write-Host "Running $env:BUILDER:" -ForegroundColor Magenta'
|
||||
- if "%BUILDER%"=="CMake" cmake --build . --config %CONFIGURATION%
|
||||
- if "%BUILDER%"=="NMake" nmake /f makefile.vc
|
||||
|
||||
test_script:
|
||||
- ps: 'Write-Host "Running tests:" -ForegroundColor Magenta'
|
||||
- if "%BUILDER%"=="CMake" ctest --output-on-failure -C %CONFIGURATION%
|
||||
- if "%BUILDER%"=="NMake" echo *** NMake does NOT build tests ***
|
||||
|
||||
# If you need to debug AppVeyor session (https://www.appveyor.com/docs/how-to/rdp-to-build-worker), then:
|
||||
# 1. Uncomment the on_finish section below:
|
||||
#on_finish:
|
||||
# - ps: $blockRdp = $true; iex ((new-object net.webclient).DownloadString('https://raw.githubusercontent.com/appveyor/ci/master/scripts/enable-rdp.ps1'))
|
||||
# 2. Add this line to the init section below
|
||||
#- ps: iex ((new-object net.webclient).DownloadString('https://raw.githubusercontent.com/appveyor/ci/master/scripts/enable-rdp.ps1'))
|
||||
version: 1.0.{build}
|
||||
|
||||
image: Visual Studio 2017
|
||||
|
||||
platform: x64
|
||||
|
||||
configuration: Release
|
||||
|
||||
shallow_clone: true
|
||||
clone_depth: 5
|
||||
|
||||
matrix:
|
||||
fast_finish: false # set this flag to immediately finish build once one of the jobs fails.
|
||||
|
||||
environment:
|
||||
matrix:
|
||||
- PLATFORM: x64
|
||||
BUILDER: CMake
|
||||
GENERATOR: "Visual Studio 15 2017 Win64"
|
||||
APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2017
|
||||
# - PLATFORM: x86
|
||||
# BUILDER: CMake
|
||||
# GENERATOR: "Visual Studio 15 2017"
|
||||
# APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2017
|
||||
# - PLATFORM: x64
|
||||
# BUILDER: CMake
|
||||
# GENERATOR: "NMake Makefiles"
|
||||
# APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2017
|
||||
# - PLATFORM: x86
|
||||
# BUILDER: CMake
|
||||
# GENERATOR: "NMake Makefiles"
|
||||
# APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2017
|
||||
# - PLATFORM: x64
|
||||
# BUILDER: CMake
|
||||
# GENERATOR: "Visual Studio 14 2015 Win64"
|
||||
# APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2015
|
||||
# - PLATFORM: x86
|
||||
# BUILDER: CMake
|
||||
# GENERATOR: "Visual Studio 14 2015"
|
||||
# APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2015
|
||||
# - PLATFORM: x64
|
||||
# BUILDER: CMake
|
||||
# GENERATOR: "NMake Makefiles"
|
||||
# APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2015
|
||||
- PLATFORM: x86
|
||||
BUILDER: CMake
|
||||
GENERATOR: "NMake Makefiles"
|
||||
APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2015
|
||||
|
||||
init:
|
||||
- ps: 'Write-Host "Building GEOS branch: $env:APPVEYOR_REPO_BRANCH" -ForegroundColor Magenta'
|
||||
#- ps: |
|
||||
# Write-Host "Build worker environment variables:" -ForegroundColor Magenta
|
||||
# Get-ChildItem Env: | %{"{0}={1}" -f $_.Name,$_.Value}
|
||||
- if "%APPVEYOR_BUILD_WORKER_IMAGE%"=="Visual Studio 2017" if "%GENERATOR%"=="NMake Makefiles" if "%PLATFORM%"=="x86" call "C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Auxiliary\Build\vcvars32.bat"
|
||||
- if "%APPVEYOR_BUILD_WORKER_IMAGE%"=="Visual Studio 2017" if "%GENERATOR%"=="NMake Makefiles" if "%PLATFORM%"=="x64" call "C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Auxiliary\Build\vcvars64.bat"
|
||||
- if "%APPVEYOR_BUILD_WORKER_IMAGE%"=="Visual Studio 2015" if "%GENERATOR%"=="NMake Makefiles" if "%PLATFORM%"=="x86" call "C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\vcvarsall.bat" x86
|
||||
- if "%APPVEYOR_BUILD_WORKER_IMAGE%"=="Visual Studio 2015" if "%GENERATOR%"=="NMake Makefiles" if "%PLATFORM%"=="x64" call "C:\Program Files\Microsoft SDKs\Windows\v7.1\Bin\SetEnv.cmd" /x64
|
||||
- if "%APPVEYOR_BUILD_WORKER_IMAGE%"=="Visual Studio 2015" if "%GENERATOR%"=="NMake Makefiles" if "%PLATFORM%"=="x64" call "C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\vcvarsall.bat" x86_amd64
|
||||
|
||||
before_build:
|
||||
- ps: 'Write-Host "Running $env:BUILDER with $env:GENERATOR" -ForegroundColor Magenta'
|
||||
- if "%BUILDER%"=="CMake" cmake.exe -G "%GENERATOR%" -DCMAKE_BUILD_TYPE=%CONFIGURATION% %APPVEYOR_BUILD_FOLDER%
|
||||
- if "%BUILDER%"=="NMake" .\autogen.bat
|
||||
|
||||
build_script:
|
||||
- ps: 'Write-Host "Running $env:BUILDER:" -ForegroundColor Magenta'
|
||||
- if "%BUILDER%"=="CMake" cmake --build . --config %CONFIGURATION%
|
||||
- if "%BUILDER%"=="NMake" nmake /f makefile.vc
|
||||
|
||||
test_script:
|
||||
- ps: 'Write-Host "Running tests:" -ForegroundColor Magenta'
|
||||
- if "%BUILDER%"=="CMake" ctest --output-on-failure -C %CONFIGURATION%
|
||||
- if "%BUILDER%"=="NMake" echo *** NMake does NOT build tests ***
|
||||
|
||||
# If you need to debug AppVeyor session (https://www.appveyor.com/docs/how-to/rdp-to-build-worker), then:
|
||||
# 1. Uncomment the on_finish section below:
|
||||
#on_finish:
|
||||
# - ps: $blockRdp = $true; iex ((new-object net.webclient).DownloadString('https://raw.githubusercontent.com/appveyor/ci/master/scripts/enable-rdp.ps1'))
|
||||
# 2. Add this line to the init section below
|
||||
#- ps: iex ((new-object net.webclient).DownloadString('https://raw.githubusercontent.com/appveyor/ci/master/scripts/enable-rdp.ps1'))
|
||||
|
|
|
|||
|
|
@ -1,75 +1,47 @@
|
|||
#################################################################################
|
||||
################################################################################
|
||||
# Part of CMake configuration for GEOS
|
||||
#
|
||||
# GEOS C library build configuration for CMake build system
|
||||
#
|
||||
# Copyright (C) 2009 Mateusz Loskot <mateusz@loskot.net>
|
||||
# Copyright (C) 2018 Mateusz Loskot <mateusz@loskot.net>
|
||||
#
|
||||
# This is free software; you can redistribute and/or modify it under
|
||||
# the terms of the GNU Lesser General Public Licence as published
|
||||
# by the Free Software Foundation.
|
||||
# See the COPYING file for more information.
|
||||
#
|
||||
#################################################################################
|
||||
|
||||
if(WIN32)
|
||||
add_definitions("-DGEOS_DLL_EXPORT=1")
|
||||
endif()
|
||||
|
||||
set(geos_c_SOURCES
|
||||
geos_c.cpp
|
||||
geos_ts_c.cpp)
|
||||
|
||||
file(GLOB geos_capi_HEADERS ${CMAKE_BINARY_DIR}/capi/*.h) # fix source_group issue
|
||||
|
||||
if(NOT GEOS_ENABLE_MACOSX_FRAMEWORK AND GEOS_BUILD_SHARED)
|
||||
# if building OS X framework or only building static libs, CAPI built into C++ library
|
||||
add_library(geos_c SHARED ${geos_c_SOURCES})
|
||||
|
||||
target_link_libraries(geos_c geos)
|
||||
|
||||
if (WIN32)
|
||||
set_target_properties(geos_c
|
||||
PROPERTIES
|
||||
VERSION ${CAPI_VERSION}
|
||||
CLEAN_DIRECT_OUTPUT 1)
|
||||
else()
|
||||
set_target_properties(geos_c
|
||||
PROPERTIES
|
||||
VERSION ${CAPI_VERSION}
|
||||
SOVERSION ${CAPI_SOVERSION}
|
||||
CLEAN_DIRECT_OUTPUT 1)
|
||||
endif()
|
||||
|
||||
add_dependencies(geos_c geos_revision)
|
||||
################################################################################
|
||||
|
||||
if(GEOS_BUILD_FROM_GIT)
|
||||
add_custom_target(geos_revision_header
|
||||
COMMAND ${CMAKE_COMMAND}
|
||||
-D DST=${CMAKE_BINARY_DIR}/geos_revision.h
|
||||
-D CMAKE_MODULE_PATH="${PROJECT_SOURCE_DIR}/cmake"
|
||||
-P ${CMAKE_SOURCE_DIR}/cmake/GenerateRevisionHeader.cmake
|
||||
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR})
|
||||
else()
|
||||
add_library(geos_c INTERFACE)
|
||||
target_link_libraries(geos_c INTERFACE geos-static)
|
||||
add_library(geos_revision_header INTERFACE)
|
||||
endif()
|
||||
|
||||
add_dependencies(geos_c geos_revision_header)
|
||||
|
||||
#################################################################################
|
||||
# Installation
|
||||
#################################################################################
|
||||
file(GLOB_RECURSE _headers ${CMAKE_CURRENT_LIST_DIR}/*.cpp CONFIGURE_DEPEND)
|
||||
target_sources(geos_c PRIVATE ${_headers})
|
||||
unset(_headers)
|
||||
|
||||
if(APPLE AND GEOS_ENABLE_MACOSX_FRAMEWORK)
|
||||
install(FILES ${CMAKE_CURRENT_BINARY_DIR}/geos_c.h
|
||||
DESTINATION GEOS.framework/Versions/${VERSION_MAJOR}/Headers)
|
||||
install(CODE "execute_process(COMMAND sed -E -i \"\" \"s,# *include[[:space:]]+<geos/,#include <GEOS/,g\" \"$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/GEOS.framework/Versions/${VERSION_MAJOR}/Headers/geos_c.h\")")
|
||||
else()
|
||||
install(FILES ${CMAKE_CURRENT_BINARY_DIR}/geos_c.h
|
||||
DESTINATION include)
|
||||
endif()
|
||||
target_include_directories(geos_c
|
||||
PUBLIC
|
||||
$<BUILD_INTERFACE:${CMAKE_CURRENT_BINARY_DIR}>
|
||||
$<INSTALL_INTERFACE:include/geos>)
|
||||
|
||||
if(NOT GEOS_ENABLE_MACOSX_FRAMEWORK AND GEOS_BUILD_SHARED)
|
||||
install(TARGETS geos_c
|
||||
RUNTIME DESTINATION bin
|
||||
LIBRARY DESTINATION lib
|
||||
ARCHIVE DESTINATION lib)
|
||||
endif()
|
||||
set(VERSION ${GEOS_VERSION})
|
||||
set(VERSION_MAJOR ${GEOS_VERSION_MAJOR})
|
||||
set(VERSION_MINOR ${GEOS_VERSION_MINOR})
|
||||
set(VERSION_PATCH ${GEOS_VERSION_PATCH})
|
||||
|
||||
#################################################################################
|
||||
# Group source files for IDE source explorers (e.g. Visual Studio)
|
||||
#################################################################################
|
||||
configure_file(
|
||||
${CMAKE_CURRENT_LIST_DIR}/geos_c.h.in
|
||||
${CMAKE_CURRENT_BINARY_DIR}/geos_c.h
|
||||
@ONLY)
|
||||
|
||||
source_group("Header Files" FILES ${geos_capi_HEADERS})
|
||||
unset(VERSION)
|
||||
unset(VERSION_MAJOR)
|
||||
unset(VERSION_MINOR)
|
||||
unset(VERSION_PATCH)
|
||||
|
|
|
|||
|
|
@ -0,0 +1,26 @@
|
|||
################################################################################
|
||||
# Part of CMake configuration for GEOS
|
||||
#
|
||||
# Copyright (C) 2018 Daniel Baston <dbaston@gmail.com>
|
||||
#
|
||||
# This is free software; you can redistribute and/or modify it under
|
||||
# the terms of the GNU Lesser General Public Licence as published
|
||||
# by the Free Software Foundation.
|
||||
# See the COPYING file for more information.
|
||||
################################################################################
|
||||
include(GetGitRevision)
|
||||
|
||||
get_git_revision(
|
||||
HASH_LENGTH 7
|
||||
HASH GEOS_GIT_HASH
|
||||
DIRTY GEOS_GIT_IS_DIRTY)
|
||||
|
||||
set(REV ${GEOS_GIT_HASH})
|
||||
if (${GEOS_GIT_IS_DIRTY})
|
||||
set(REV "${REV} (dirty)")
|
||||
endif()
|
||||
|
||||
message(STATUS "GEOS: GEOS_REVISION=${REV}")
|
||||
|
||||
file(WRITE ${DST} "#define GEOS_REVISION \"${REV}\"
|
||||
")
|
||||
|
|
@ -0,0 +1,40 @@
|
|||
# Adapted from https://gitlab.kitware.com/cmake/cmake/blob/aec06dd4922187ce5346d20a9f0d53f01b6ce9fc/Source/CMakeVersionSource.cmake
|
||||
|
||||
# Try to identify the current development source version.
|
||||
function(get_git_revision)
|
||||
cmake_parse_arguments("ARG" "" "HASH;HASH_LENGTH;DIRTY" "" "${ARGN}")
|
||||
|
||||
if(EXISTS ${CMAKE_SOURCE_DIR}/.git/HEAD)
|
||||
find_program(GIT_EXECUTABLE NAMES git git.cmd)
|
||||
mark_as_advanced(GIT_EXECUTABLE)
|
||||
|
||||
if(GIT_EXECUTABLE)
|
||||
execute_process(
|
||||
COMMAND ${GIT_EXECUTABLE} rev-parse --verify -q --short=${ARG_HASH_LENGTH} HEAD
|
||||
OUTPUT_VARIABLE head
|
||||
OUTPUT_STRIP_TRAILING_WHITESPACE
|
||||
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
|
||||
)
|
||||
if(head)
|
||||
execute_process(
|
||||
COMMAND ${GIT_EXECUTABLE} update-index -q --refresh
|
||||
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
|
||||
)
|
||||
execute_process(
|
||||
COMMAND ${GIT_EXECUTABLE} diff-index --name-only HEAD -- --ignore-space-at-eol
|
||||
OUTPUT_VARIABLE dirty
|
||||
OUTPUT_STRIP_TRAILING_WHITESPACE
|
||||
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
|
||||
)
|
||||
endif()
|
||||
endif()
|
||||
endif()
|
||||
|
||||
set(${ARG_HASH} "${head}" PARENT_SCOPE)
|
||||
|
||||
if(dirty)
|
||||
set(${ARG_DIRTY} 1 PARENT_SCOPE)
|
||||
else()
|
||||
set("${ARG_DIRTY}" 0 PARENT_SCOPE)
|
||||
endif()
|
||||
endfunction()
|
||||
|
|
@ -4,12 +4,12 @@
|
|||
#
|
||||
# Defines commands used by make uninstall target of CMake build configuration.
|
||||
#
|
||||
# Author: Credit to the CMake mailing list archives for providing this solution.
|
||||
# Author: Credit to the CMake mailing list archives for providing this solution.
|
||||
# Modifications: Mateusz Loskot <mateusz@loskot.net>
|
||||
#
|
||||
#################################################################################
|
||||
if(NOT EXISTS "@CMAKE_CURRENT_BINARY_DIR@/install_manifest.txt")
|
||||
message(FATAL_ERROR
|
||||
message(FATAL_ERROR
|
||||
"Cannot find install manifest:
|
||||
@CMAKE_CURRENT_BINARY_DIR@/install_manifest.txt")
|
||||
endif()
|
||||
|
|
@ -20,7 +20,7 @@ string(REGEX REPLACE "\n" ";" files "${files}")
|
|||
set(GEOS_INCLUDE_DIR)
|
||||
foreach(file ${files})
|
||||
|
||||
if(${file} MATCHES "geos.h")
|
||||
if(${file} MATCHES "geom.h")
|
||||
get_filename_component(GEOS_INCLUDE_DIR ${file} PATH)
|
||||
endif()
|
||||
|
||||
|
|
@ -39,7 +39,7 @@ foreach(file ${files})
|
|||
endforeach()
|
||||
|
||||
message(STATUS "Deleting ${GEOS_INCLUDE_DIR} directory")
|
||||
exec_program("@CMAKE_COMMAND@"
|
||||
exec_program("@CMAKE_COMMAND@"
|
||||
ARGS "-E remove_directory \"${GEOS_INCLUDE_DIR}\""
|
||||
OUTPUT_VARIABLE rm_out
|
||||
RETURN_VALUE rm_retval)
|
||||
|
|
|
|||
|
|
@ -0,0 +1,11 @@
|
|||
################################################################################
|
||||
# Part of CMake configuration for GEOS
|
||||
#
|
||||
# Copyright (C) 2018 Mateusz Loskot <mateusz@loskot.net>
|
||||
#
|
||||
# This is free software; you can redistribute and/or modify it under
|
||||
# the terms of the GNU Lesser General Public Licence as published
|
||||
# by the Free Software Foundation.
|
||||
# See the COPYING file for more information.
|
||||
################################################################################
|
||||
include("${CMAKE_CURRENT_LIST_DIR}/geos-targets.cmake")
|
||||
|
|
@ -1,22 +0,0 @@
|
|||
Redistribution and use in source and binary forms, with or without
|
||||
modification, are permitted provided that the following conditions
|
||||
are met:
|
||||
|
||||
1. Redistributions of source code must retain the copyright
|
||||
notice, this list of conditions and the following disclaimer.
|
||||
2. Redistributions in binary form must reproduce the copyright
|
||||
notice, this list of conditions and the following disclaimer in the
|
||||
documentation and/or other materials provided with the distribution.
|
||||
3. The name of the author may not be used to endorse or promote products
|
||||
derived from this software without specific prior written permission.
|
||||
|
||||
THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
|
||||
IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
|
||||
OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
|
||||
IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
|
||||
INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
|
||||
NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
||||
DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
||||
THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
|
||||
THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
|
|
@ -1,43 +0,0 @@
|
|||
# - Check if the prototype for a function exists.
|
||||
# CHECK_PROTOTYPE_EXISTS (FUNCTION HEADER VARIABLE)
|
||||
#
|
||||
# FUNCTION - the name of the function you are looking for
|
||||
# HEADER - the header(s) where the prototype should be declared
|
||||
# VARIABLE - variable to store the result
|
||||
#
|
||||
# The following variables may be set before calling this macro to
|
||||
# modify the way the check is run:
|
||||
#
|
||||
# CMAKE_REQUIRED_FLAGS = string of compile command line flags
|
||||
# CMAKE_REQUIRED_DEFINITIONS = list of macros to define (-DFOO=bar)
|
||||
# CMAKE_REQUIRED_INCLUDES = list of include directories
|
||||
|
||||
# Copyright (c) 2006, Alexander Neundorf, <neundorf@kde.org>
|
||||
#
|
||||
# Redistribution and use is allowed according to the terms of the BSD license.
|
||||
# For details see the accompanying COPYING-CMAKE-SCRIPTS file.
|
||||
#
|
||||
# Source: KDE/kdelibs
|
||||
# <http://websvn.kde.org/trunk/KDE/kdelibs/cmake/modules/CheckPrototypeExists.cmake?pathrev=776742>
|
||||
#
|
||||
INCLUDE(CheckCXXSourceCompiles)
|
||||
|
||||
MACRO(CHECK_PROTOTYPE_EXISTS _SYMBOL _HEADER _RESULT)
|
||||
SET(_INCLUDE_FILES)
|
||||
FOREACH (it ${_HEADER})
|
||||
SET(_INCLUDE_FILES "${_INCLUDE_FILES}#include <${it}>\n")
|
||||
ENDFOREACH (it)
|
||||
|
||||
SET(_CHECK_PROTO_EXISTS_SOURCE_CODE "
|
||||
${_INCLUDE_FILES}
|
||||
int main()
|
||||
{
|
||||
#ifndef ${_SYMBOL}
|
||||
int i = sizeof(&${_SYMBOL});
|
||||
#endif
|
||||
return 0;
|
||||
}
|
||||
")
|
||||
CHECK_CXX_SOURCE_COMPILES("${_CHECK_PROTO_EXISTS_SOURCE_CODE}" ${_RESULT})
|
||||
ENDMACRO(CHECK_PROTOTYPE_EXISTS _SYMBOL _HEADER _RESULT)
|
||||
|
||||
|
|
@ -1,17 +0,0 @@
|
|||
#
|
||||
# Macro generates tree of IDE source groups based on folders structure
|
||||
# Source: http://www.cmake.org/pipermail/cmake/2013-November/056332.html
|
||||
#
|
||||
macro(GenerateSourceGroups curdir)
|
||||
file(GLOB children RELATIVE ${PROJECT_SOURCE_DIR}/${curdir} ${PROJECT_SOURCE_DIR}/${curdir}/*)
|
||||
foreach(child ${children})
|
||||
if(IS_DIRECTORY ${PROJECT_SOURCE_DIR}/${curdir}/${child})
|
||||
GenerateSourceGroups(${curdir}/${child})
|
||||
else()
|
||||
string(REPLACE "/" "\\" groupname ${curdir})
|
||||
# I would like to call the src root folder in a different name, only in visual studio (not mandatory requirement)
|
||||
string(REPLACE "src" "Source Files" groupname ${groupname})
|
||||
source_group(${groupname} FILES ${PROJECT_SOURCE_DIR}/${curdir}/${child})
|
||||
endif()
|
||||
endforeach()
|
||||
endmacro()
|
||||
|
|
@ -0,0 +1,20 @@
|
|||
################################################################################
|
||||
# Part of CMake configuration for GEOS
|
||||
#
|
||||
# Copyright (C) 2018 Mateusz Loskot <mateusz@loskot.net>
|
||||
#
|
||||
# This is free software; you can redistribute and/or modify it under
|
||||
# the terms of the GNU Lesser General Public Licence as published
|
||||
# by the Free Software Foundation.
|
||||
# See the COPYING file for more information.
|
||||
################################################################################
|
||||
cmake_minimum_required(VERSION 3.12)
|
||||
|
||||
project(GEOS VERSION 1.0.0 LANGUAGES C CXX)
|
||||
find_package(GEOS 3.8 REQUIRED)
|
||||
|
||||
add_executable(geos_client geos_client.cpp)
|
||||
target_link_libraries(geos_client PRIVATE GEOS::geos)
|
||||
|
||||
add_executable(geos_c_client geos_c_client.cpp)
|
||||
target_link_libraries(geos_c_client PRIVATE GEOS::geos_c)
|
||||
|
|
@ -0,0 +1,6 @@
|
|||
#include <geos_c.h>
|
||||
|
||||
int main()
|
||||
{
|
||||
finishGEOS();
|
||||
}
|
||||
|
|
@ -0,0 +1,8 @@
|
|||
#include <geos/geom/GeometryFactory.h>
|
||||
using namespace geos::geom;
|
||||
|
||||
int main()
|
||||
{
|
||||
GeometryFactory::Ptr factory = GeometryFactory::create();
|
||||
(void)factory;
|
||||
}
|
||||
|
|
@ -1,54 +1,33 @@
|
|||
#################################################################################
|
||||
################################################################################
|
||||
# Part of CMake configuration for GEOS
|
||||
#
|
||||
# GEOS C++ library build configuration for CMake build system
|
||||
#
|
||||
# Copyright (C) 2009 Mateusz Loskot <mateusz@loskot.net>
|
||||
# Copyright (C) 2018 Mateusz Loskot <mateusz@loskot.net>
|
||||
#
|
||||
# This is free software; you can redistribute and/or modify it under
|
||||
# the terms of the GNU Lesser General Public Licence as published
|
||||
# by the Free Software Foundation.
|
||||
# See the COPYING file for more information.
|
||||
#
|
||||
#################################################################################
|
||||
################################################################################
|
||||
file(GLOB_RECURSE _headers ${CMAKE_CURRENT_LIST_DIR}/*.h CONFIGURE_DEPEND)
|
||||
target_sources(geos PRIVATE ${_headers})
|
||||
unset(_headers)
|
||||
|
||||
#################################################################################
|
||||
# Install/Uninstall
|
||||
#################################################################################
|
||||
target_include_directories(geos
|
||||
PUBLIC
|
||||
$<BUILD_INTERFACE:${CMAKE_CURRENT_LIST_DIR}>
|
||||
$<BUILD_INTERFACE:${CMAKE_CURRENT_BINARY_DIR}>
|
||||
$<INSTALL_INTERFACE:include/geos>)
|
||||
|
||||
# There is a builtin cmake way to get headers in the right location
|
||||
# for OS X framework, but it's not practical this complex tree
|
||||
set(VERSION ${GEOS_VERSION})
|
||||
set(VERSION_MAJOR ${GEOS_VERSION_MAJOR})
|
||||
set(VERSION_MINOR ${GEOS_VERSION_MINOR})
|
||||
set(VERSION_PATCH ${GEOS_VERSION_PATCH})
|
||||
|
||||
if(APPLE AND GEOS_ENABLE_MACOSX_FRAMEWORK)
|
||||
set(installdest GEOS.framework/Versions/${VERSION_MAJOR}/Headers)
|
||||
else()
|
||||
set(installdest include/geos)
|
||||
endif()
|
||||
configure_file(${CMAKE_CURRENT_LIST_DIR}/geos/version.h.in
|
||||
${CMAKE_CURRENT_BINARY_DIR}/geos/version.h
|
||||
@ONLY)
|
||||
|
||||
|
||||
install(FILES geos.h
|
||||
DESTINATION ${installdest})
|
||||
|
||||
install(FILES ${CMAKE_CURRENT_BINARY_DIR}/geos/version.h
|
||||
DESTINATION ${installdest})
|
||||
|
||||
install(DIRECTORY geos/
|
||||
DESTINATION ${installdest}
|
||||
FILES_MATCHING
|
||||
PATTERN "*.h"
|
||||
PATTERN "*.inl"
|
||||
PATTERN ".svn" EXCLUDE)
|
||||
|
||||
# Some post-processing for the framework
|
||||
# luckily GEOS uses header subdir already, just need to change case
|
||||
if(APPLE AND GEOS_ENABLE_MACOSX_FRAMEWORK)
|
||||
install(CODE
|
||||
"execute_process(COMMAND find \"$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/${installdest}\" -name *.* -print0
|
||||
COMMAND xargs -0 sed -E -i \"\" \"s,# *include[[:space:]]+<geos/,#include <GEOS/,g\")")
|
||||
install(CODE
|
||||
"execute_process(COMMAND ln -sfh Versions/Current/Headers \"$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/GEOS.framework/Headers\")")
|
||||
endif()
|
||||
|
||||
#################################################################################
|
||||
# Group source files for IDE source explorers (e.g. Visual Studio)
|
||||
#################################################################################
|
||||
GenerateSourceGroups(include)
|
||||
unset(VERSION)
|
||||
unset(VERSION_MAJOR)
|
||||
unset(VERSION_MINOR)
|
||||
unset(VERSION_PATCH)
|
||||
|
|
|
|||
|
|
@ -1,125 +1,13 @@
|
|||
#################################################################################
|
||||
################################################################################
|
||||
# Part of CMake configuration for GEOS
|
||||
#
|
||||
# GEOS C++ library build configuration for CMake build system
|
||||
#
|
||||
# Copyright (C) 2009 Mateusz Loskot <mateusz@loskot.net>
|
||||
# Copyright (C) 2018 Mateusz Loskot <mateusz@loskot.net>
|
||||
#
|
||||
# This is free software; you can redistribute and/or modify it under
|
||||
# the terms of the GNU Lesser General Public Licence as published
|
||||
# by the Free Software Foundation.
|
||||
# See the COPYING file for more information.
|
||||
#
|
||||
#################################################################################
|
||||
|
||||
file(GLOB_RECURSE geos_SOURCES ${CMAKE_CURRENT_SOURCE_DIR}/*.cpp)
|
||||
file(GLOB_RECURSE geos_ALL_HEADERS ${CMAKE_SOURCE_DIR}/include/*.h) # fix source_group issue
|
||||
|
||||
# Building with Visual C++ x86_64 needs to compile the asm utilities first
|
||||
if (MSVC AND (${CMAKE_SIZEOF_VOID_P} EQUAL 8))
|
||||
set(TTMATH_MSVC64_ASM ttmathuint_x86_64_msvc.asm)
|
||||
enable_language(ASM_MASM)
|
||||
message(STATUS "Enabled MASM to compile '${TTMATH_MSVC64_ASM}'")
|
||||
list(INSERT geos_SOURCES 0 ${CMAKE_SOURCE_DIR}/include/geos/algorithm/ttmath/${TTMATH_MSVC64_ASM})
|
||||
endif()
|
||||
|
||||
# Include CAPI in OS X framework binary and in static libs
|
||||
set(geos_c_SOURCES
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/../capi/geos_c.cpp
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/../capi/geos_ts_c.cpp)
|
||||
|
||||
if(GEOS_ENABLE_MACOSX_FRAMEWORK)
|
||||
# OS X frameworks don't have static libs
|
||||
# also 1 binary, so include CAPI here
|
||||
# and, make name all caps
|
||||
|
||||
add_library(GEOS SHARED ${geos_SOURCES} ${geos_c_SOURCES})
|
||||
|
||||
math(EXPR CVERSION "${VERSION_MAJOR} + 1")
|
||||
# VERSION = current version, SOVERSION = compatibility version
|
||||
set_target_properties(GEOS
|
||||
PROPERTIES
|
||||
CLEAN_DIRECT_OUTPUT 1
|
||||
FRAMEWORK 1
|
||||
VERSION "${CVERSION}.${VERSION_MINOR}.${VERSION_PATCH}"
|
||||
SOVERSION ${CVERSION}
|
||||
FRAMEWORK_VERSION ${VERSION_MAJOR}
|
||||
BUILD_WITH_INSTALL_RPATH TRUE
|
||||
INSTALL_NAME_DIR "${CMAKE_INSTALL_PREFIX}"
|
||||
MACOSX_FRAMEWORK_INFO_PLIST "${CMAKE_CURRENT_SOURCE_DIR}/Info.plist.in"
|
||||
MACOSX_FRAMEWORK_BUNDLE_VERSION "GEOS ${VERSION}"
|
||||
MACOSX_FRAMEWORK_SHORT_VERSION_STRING ${VERSION}
|
||||
MACOSX_FRAMEWORK_IDENTIFIER org.osgeo.geos)
|
||||
|
||||
install(TARGETS GEOS FRAMEWORK DESTINATION .)
|
||||
|
||||
if(GEOS_ENABLE_MACOSX_FRAMEWORK_UNIXCOMPAT)
|
||||
# Unix compatibility option, provides typical bin/lib/include folder
|
||||
# structure for framework-challenged projects
|
||||
|
||||
set(GEOS_FWDIR "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/GEOS.framework")
|
||||
set(GEOS_FWDIR_VER "${GEOS_FWDIR}/Versions/${VERSION_MAJOR}")
|
||||
install(CODE "execute_process(COMMAND mkdir -p \"${GEOS_FWDIR_VER}/unix/bin\")")
|
||||
install(CODE "execute_process(COMMAND mkdir -p \"${GEOS_FWDIR_VER}/unix/include\")")
|
||||
install(CODE "execute_process(COMMAND mkdir -p \"${GEOS_FWDIR_VER}/unix/lib\")")
|
||||
install(CODE "execute_process(COMMAND ln -sfh ../../Headers \"${GEOS_FWDIR_VER}/unix/include/geos\")")
|
||||
install(CODE "execute_process(COMMAND ln -sf ../../Headers/geos_c.h \"${GEOS_FWDIR_VER}/unix/include/geos_c.h\")")
|
||||
install(CODE "execute_process(COMMAND ln -sf ../../GEOS \"${GEOS_FWDIR_VER}/unix/lib/libgeos.dylib\")")
|
||||
install(CODE "execute_process(COMMAND ln -sf ../../GEOS \"${GEOS_FWDIR_VER}/unix/lib/libgeos_c.dylib\")")
|
||||
install(CODE "execute_process(COMMAND ln -sfh Versions/Current/unix \"${GEOS_FWDIR}/unix\")")
|
||||
endif()
|
||||
|
||||
else()
|
||||
|
||||
if(GEOS_BUILD_SHARED)
|
||||
add_library(geos SHARED ${geos_SOURCES} ${geos_ALL_HEADERS})
|
||||
|
||||
set_target_properties(geos
|
||||
PROPERTIES
|
||||
DEFINE_SYMBOL GEOS_DLL_EXPORT
|
||||
VERSION ${VERSION}
|
||||
CLEAN_DIRECT_OUTPUT 1)
|
||||
|
||||
install(TARGETS geos
|
||||
RUNTIME DESTINATION bin
|
||||
LIBRARY DESTINATION lib
|
||||
ARCHIVE DESTINATION lib)
|
||||
endif()
|
||||
|
||||
if(GEOS_BUILD_STATIC)
|
||||
file(GLOB geos_capi_HEADERS ${CMAKE_CURRENT_SOURCE_DIR}/../capi/*.h) # fix source_group issue
|
||||
add_library(geos-static STATIC ${geos_SOURCES} ${geos_c_SOURCES} ${geos_ALL_HEADERS} ${geos_capi_HEADERS})
|
||||
|
||||
set_target_properties(geos-static
|
||||
PROPERTIES
|
||||
OUTPUT_NAME "geos"
|
||||
PREFIX "lib"
|
||||
CLEAN_DIRECT_OUTPUT 1)
|
||||
|
||||
add_dependencies(geos-static geos_revision)
|
||||
|
||||
install(TARGETS geos-static
|
||||
RUNTIME DESTINATION bin
|
||||
LIBRARY DESTINATION lib
|
||||
ARCHIVE DESTINATION lib)
|
||||
|
||||
endif()
|
||||
|
||||
if(NOT GEOS_BUILD_SHARED)
|
||||
add_library(geos INTERFACE)
|
||||
target_link_libraries(geos INTERFACE geos-static)
|
||||
endif()
|
||||
|
||||
endif() # (GEOS_ENABLE_MACOSX_FRAMEWORK)
|
||||
|
||||
# if(APPLE)
|
||||
# set_target_properties(geos
|
||||
# PROPERTIES
|
||||
# BUILD_WITH_INSTALL_RPATH TRUE
|
||||
# INSTALL_NAME_DIR "${CMAKE_INSTALL_PREFIX}")
|
||||
# endif()
|
||||
|
||||
|
||||
#################################################################################
|
||||
# Group source files for IDE source explorers (e.g. Visual Studio)
|
||||
#################################################################################
|
||||
GenerateSourceGroups(src)
|
||||
################################################################################
|
||||
file(GLOB_RECURSE _sources ${CMAKE_CURRENT_LIST_DIR}/*.cpp CONFIGURE_DEPEND)
|
||||
target_sources(geos PRIVATE ${_sources})
|
||||
unset(_sources)
|
||||
|
|
|
|||
|
|
@ -1,15 +1,14 @@
|
|||
#################################################################################
|
||||
################################################################################
|
||||
# Part of CMake configuration for GEOS
|
||||
#
|
||||
# GEOS tests build configuration for CMake build system
|
||||
#
|
||||
# Copyright (C) 2009 Mateusz Loskot <mateusz@loskot.net>
|
||||
# Copyright (C) 2018 Mateusz Loskot <mateusz@loskot.net>
|
||||
#
|
||||
# This is free software; you can redistribute and/or modify it under
|
||||
# the terms of the GNU Lesser General Public Licence as published
|
||||
# by the Free Software Foundation.
|
||||
# See the COPYING file for more information.
|
||||
#
|
||||
#################################################################################
|
||||
################################################################################
|
||||
add_custom_target(check COMMAND ctest)
|
||||
|
||||
add_subdirectory(unit)
|
||||
add_subdirectory(xmltester)
|
||||
|
|
|
|||
|
|
@ -1,45 +1,20 @@
|
|||
#################################################################################
|
||||
################################################################################
|
||||
# Part of CMake configuration for GEOS
|
||||
#
|
||||
# CMake configuration for GEOS big test
|
||||
#
|
||||
# Copyright (C) 2011 Mateusz Loskot <mateusz@loskot.net>
|
||||
# Copyright (C) 2018 Mateusz Loskot <mateusz@loskot.net>
|
||||
#
|
||||
# This is free software; you can redistribute and/or modify it under
|
||||
# the terms of the GNU Lesser General Public Licence as published
|
||||
# by the Free Software Foundation.
|
||||
# See the COPYING file for more information.
|
||||
#
|
||||
#################################################################################
|
||||
################################################################################
|
||||
add_executable(test_bug234 bug234.cpp)
|
||||
target_link_libraries(test_bug234 PRIVATE geos)
|
||||
add_test(NAME test_bug234 COMMAND test_bug234)
|
||||
|
||||
set(STATUS_MESSAGE "Enable GEOS large geometry tests build")
|
||||
set(STATUS_RESULT "OFF")
|
||||
|
||||
if(GEOS_ENABLE_TESTS)
|
||||
|
||||
include_directories(${CMAKE_CURRENT_SOURCE_DIR})
|
||||
|
||||
add_executable(test_bug234 bug234.cpp)
|
||||
|
||||
if(APPLE AND GEOS_ENABLE_MACOSX_FRAMEWORK)
|
||||
target_link_libraries(test_bug234 GEOS)
|
||||
else()
|
||||
target_link_libraries(test_bug234 geos)
|
||||
endif()
|
||||
|
||||
add_executable(test_sweep_line_speed
|
||||
TestSweepLineSpeed.cpp
|
||||
GeometryTestFactory.cpp
|
||||
bigtest.h)
|
||||
if(APPLE AND GEOS_ENABLE_MACOSX_FRAMEWORK)
|
||||
target_link_libraries(test_sweep_line_speed GEOS)
|
||||
else()
|
||||
target_link_libraries(test_sweep_line_speed geos)
|
||||
endif()
|
||||
|
||||
add_test(test_bug234 ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/test_bug234)
|
||||
add_test(test_sweep_line_speed ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/test_sweep_line_speed)
|
||||
|
||||
set(STATUS_RESULT "ON")
|
||||
endif()
|
||||
|
||||
message(STATUS "${STATUS_MESSAGE} - ${STATUS_RESULT}")
|
||||
add_executable(test_sweep_line_speed)
|
||||
target_sources(test_sweep_line_speed
|
||||
PRIVATE
|
||||
TestSweepLineSpeed.cpp
|
||||
GeometryTestFactory.cpp)
|
||||
target_link_libraries(test_sweep_line_speed PRIVATE geos)
|
||||
|
|
|
|||
|
|
@ -1,34 +1,16 @@
|
|||
#################################################################################
|
||||
################################################################################
|
||||
# Part of CMake configuration for GEOS
|
||||
#
|
||||
# CMake configuration for GEOS perf tests
|
||||
#
|
||||
# Copyright (C) 2017 Mateusz Loskot <mateusz@loskot.net>
|
||||
# Copyright (C) 2018 Mateusz Loskot <mateusz@loskot.net>
|
||||
#
|
||||
# This is free software; you can redistribute and/or modify it under
|
||||
# the terms of the GNU Lesser General Public Licence as published
|
||||
# by the Free Software Foundation.
|
||||
# See the COPYING file for more information.
|
||||
#
|
||||
#################################################################################
|
||||
################################################################################
|
||||
add_executable(test_perf_class_sizes ClassSizes.cpp)
|
||||
target_link_libraries(test_perf_class_sizes PRIVATE geos)
|
||||
add_test(NAME test_perf_class_sizes COMMAND test_perf_class_sizes)
|
||||
|
||||
set(STATUS_MESSAGE "Enable GEOS performance tests build")
|
||||
set(STATUS_RESULT "OFF")
|
||||
|
||||
if(GEOS_ENABLE_TESTS)
|
||||
|
||||
include_directories(${CMAKE_CURRENT_SOURCE_DIR})
|
||||
|
||||
add_executable(perf_class_sizes ClassSizes.cpp)
|
||||
|
||||
target_link_libraries(perf_class_sizes geos)
|
||||
|
||||
# add_test(perf_class_sizes ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/perf_class_sizes)
|
||||
|
||||
add_subdirectory(algorithm)
|
||||
add_subdirectory(operation)
|
||||
add_subdirectory(capi)
|
||||
|
||||
set(STATUS_RESULT "ON")
|
||||
endif()
|
||||
|
||||
message(STATUS "${STATUS_MESSAGE} - ${STATUS_RESULT}")
|
||||
add_subdirectory(operation)
|
||||
add_subdirectory(capi)
|
||||
|
|
|
|||
|
|
@ -1,18 +1,19 @@
|
|||
#################################################################################
|
||||
################################################################################
|
||||
# Part of CMake configuration for GEOS
|
||||
#
|
||||
# CMake configuration for GEOS perf/capi tests
|
||||
#
|
||||
# Copyright (C) 2017 Mateusz Loskot <mateusz@loskot.net>
|
||||
# Copyright (C) 2018 Mateusz Loskot <mateusz@loskot.net>
|
||||
#
|
||||
# This is free software; you can redistribute and/or modify it under
|
||||
# the terms of the GNU Lesser General Public Licence as published
|
||||
# by the Free Software Foundation.
|
||||
# See the COPYING file for more information.
|
||||
#
|
||||
#################################################################################
|
||||
|
||||
add_executable(perf_memleak_mp_prep memleak_mp_prep.c)
|
||||
|
||||
target_link_libraries(perf_memleak_mp_prep geos_c)
|
||||
|
||||
#add_test(perf_memleak_mp_prep ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/perf_memleak_mp_prep)
|
||||
################################################################################
|
||||
add_executable(test_perf_memleak_mp_prep memleak_mp_prep.c)
|
||||
# test_perf_memleak_mp_prep is not dependant against geos target,
|
||||
# but geos_c only, so need explicit include directories.
|
||||
target_include_directories(test_perf_memleak_mp_prep
|
||||
PUBLIC
|
||||
$<BUILD_INTERFACE:${CMAKE_SOURCE_DIR}/include>
|
||||
$<BUILD_INTERFACE:${CMAKE_BINARY_DIR}/include>)
|
||||
target_link_libraries(test_perf_memleak_mp_prep PRIVATE geos_c)
|
||||
add_test(NAME test_perf_memleak_mp_prep COMMAND test_perf_memleak_mp_prep)
|
||||
|
|
|
|||
|
|
@ -1,15 +1,12 @@
|
|||
#################################################################################
|
||||
################################################################################
|
||||
# Part of CMake configuration for GEOS
|
||||
#
|
||||
# CMake configuration for GEOS perf/operation tests
|
||||
#
|
||||
# Copyright (C) 2017 Mateusz Loskot <mateusz@loskot.net>
|
||||
# Copyright (C) 2018 Mateusz Loskot <mateusz@loskot.net>
|
||||
#
|
||||
# This is free software; you can redistribute and/or modify it under
|
||||
# the terms of the GNU Lesser General Public Licence as published
|
||||
# by the Free Software Foundation.
|
||||
# See the COPYING file for more information.
|
||||
#
|
||||
#################################################################################
|
||||
|
||||
################################################################################
|
||||
add_subdirectory(buffer)
|
||||
add_subdirectory(predicate)
|
||||
|
|
|
|||
|
|
@ -1,18 +1,13 @@
|
|||
#################################################################################
|
||||
################################################################################
|
||||
# Part of CMake configuration for GEOS
|
||||
#
|
||||
# CMake configuration for GEOS perf/operation/buffer tests
|
||||
#
|
||||
# Copyright (C) 2017 Mateusz Loskot <mateusz@loskot.net>
|
||||
# Copyright (C) 2018 Mateusz Loskot <mateusz@loskot.net>
|
||||
#
|
||||
# This is free software; you can redistribute and/or modify it under
|
||||
# the terms of the GNU Lesser General Public Licence as published
|
||||
# by the Free Software Foundation.
|
||||
# See the COPYING file for more information.
|
||||
#
|
||||
#################################################################################
|
||||
|
||||
add_executable(perf_iterated_buffer IteratedBufferStressTest.cpp)
|
||||
|
||||
target_link_libraries(perf_iterated_buffer geos)
|
||||
|
||||
#add_test(perf_iterated_buffer ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/perf_iterated_buffer)
|
||||
################################################################################
|
||||
add_executable(test_perf_iterated_buffer IteratedBufferStressTest.cpp)
|
||||
target_link_libraries(test_perf_iterated_buffer PRIVATE geos)
|
||||
add_test(NAME test_perf_iterated_buffer COMMAND test_perf_iterated_buffer)
|
||||
|
|
|
|||
|
|
@ -1,19 +1,13 @@
|
|||
#################################################################################
|
||||
################################################################################
|
||||
# Part of CMake configuration for GEOS
|
||||
#
|
||||
# CMake configuration for GEOS perf/operation/predicate tests
|
||||
#
|
||||
# Copyright (C) 2017 Mateusz Loskot <mateusz@loskot.net>
|
||||
# Copyright (C) 2018 Mateusz Loskot <mateusz@loskot.net>
|
||||
#
|
||||
# This is free software; you can redistribute and/or modify it under
|
||||
# the terms of the GNU Lesser General Public Licence as published
|
||||
# by the Free Software Foundation.
|
||||
# See the COPYING file for more information.
|
||||
#
|
||||
#################################################################################
|
||||
|
||||
|
||||
add_executable(perf_rectangle_intersects RectangleIntersectsPerfTest.cpp)
|
||||
|
||||
target_link_libraries(perf_rectangle_intersects geos)
|
||||
|
||||
#add_test(perf_rectangle_intersects ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/perf_rectangle_intersects)
|
||||
################################################################################
|
||||
add_executable(test_perf_rectangle_intersects RectangleIntersectsPerfTest.cpp)
|
||||
target_link_libraries(test_perf_rectangle_intersects PRIVATE geos)
|
||||
add_test(NAME test_perf_rectangle_intersects COMMAND test_perf_rectangle_intersects)
|
||||
|
|
|
|||
|
|
@ -1,41 +1,20 @@
|
|||
#################################################################################
|
||||
################################################################################
|
||||
# Part of CMake configuration for GEOS
|
||||
#
|
||||
# GEOS unit tests build configuration for CMake build system
|
||||
#
|
||||
# Copyright (C) 2009 Mateusz Loskot <mateusz@loskot.net>
|
||||
# Copyright (C) 2018 Mateusz Loskot <mateusz@loskot.net>
|
||||
#
|
||||
# This is free software; you can redistribute and/or modify it under
|
||||
# the terms of the GNU Lesser General Public Licence as published
|
||||
# by the Free Software Foundation.
|
||||
# See the COPYING file for more information.
|
||||
#
|
||||
#################################################################################
|
||||
################################################################################
|
||||
file(GLOB_RECURSE _sources ${CMAKE_CURRENT_LIST_DIR}/*.cpp CONFIGURE_DEPEND)
|
||||
add_executable(test_geos_unit ${_sources})
|
||||
unset(_sources)
|
||||
|
||||
set(STATUS_MESSAGE "Enable GEOS unit tests build")
|
||||
set(STATUS_RESULT "OFF")
|
||||
target_link_libraries(test_geos_unit PRIVATE geos geos_c)
|
||||
target_include_directories(test_geos_unit
|
||||
PRIVATE
|
||||
$<BUILD_INTERFACE:${CMAKE_CURRENT_LIST_DIR}>)
|
||||
|
||||
if(GEOS_ENABLE_TESTS)
|
||||
include_directories(${CMAKE_SOURCE_DIR}/capi)
|
||||
include_directories(${CMAKE_CURRENT_SOURCE_DIR})
|
||||
|
||||
file(GLOB_RECURSE geos_unit_SOURCES ${CMAKE_CURRENT_SOURCE_DIR}/*.cpp)
|
||||
|
||||
add_executable(test_geos_unit ${geos_unit_SOURCES})
|
||||
|
||||
if(APPLE AND GEOS_ENABLE_MACOSX_FRAMEWORK)
|
||||
target_link_libraries(test_geos_unit GEOS)
|
||||
else()
|
||||
target_link_libraries(test_geos_unit geos geos_c)
|
||||
endif()
|
||||
|
||||
add_test(test_geos_unit ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/test_geos_unit)
|
||||
|
||||
set(STATUS_RESULT "ON")
|
||||
endif()
|
||||
|
||||
message(STATUS "${STATUS_MESSAGE} - ${STATUS_RESULT}")
|
||||
|
||||
#################################################################################
|
||||
# Group source files for IDE source explorers (e.g. Visual Studio)
|
||||
#################################################################################
|
||||
GenerateSourceGroups(tests/unit)
|
||||
add_test(NAME test_geos_unit COMMAND test_geos_unit)
|
||||
|
|
|
|||
|
|
@ -1,163 +1,31 @@
|
|||
#################################################################################
|
||||
################################################################################
|
||||
# Part of CMake configuration for GEOS
|
||||
#
|
||||
# GEOS XML tests runner build configuration for CMake build system
|
||||
#
|
||||
# Copyright (C) 2009 Mateusz Loskot <mateusz@loskot.net>
|
||||
# Copyright (C) 2018 Mateusz Loskot <mateusz@loskot.net>
|
||||
#
|
||||
# This is free software; you can redistribute and/or modify it under
|
||||
# the terms of the GNU Lesser General Public Licence as published
|
||||
# by the Free Software Foundation.
|
||||
# See the COPYING file for more information.
|
||||
#
|
||||
#################################################################################
|
||||
################################################################################
|
||||
|
||||
set(STATUS_MESSAGE "Enable GEOS XML tests build")
|
||||
set(STATUS_RESULT "OFF")
|
||||
add_executable(test_simplewkttester SimpleWKTTester.cpp)
|
||||
target_link_libraries(test_simplewkttester PRIVATE geos)
|
||||
|
||||
if(GEOS_ENABLE_TESTS)
|
||||
|
||||
include_directories(${CMAKE_CURRENT_SOURCE_DIR})
|
||||
include_directories(${CMAKE_CURRENT_SOURCE_DIR}/tinyxml2)
|
||||
|
||||
set(simplewkttester_SOURCES SimpleWKTTester.cpp)
|
||||
|
||||
set(xmltester_SOURCES
|
||||
add_executable(test_xmltester)
|
||||
target_sources(test_xmltester
|
||||
PRIVATE
|
||||
XMLTester.cpp
|
||||
tinyxml2/tinyxml2.h
|
||||
tinyxml2/tinyxml2.cpp
|
||||
BufferResultMatcher.cpp
|
||||
SingleSidedBufferResultMatcher.cpp)
|
||||
SingleSidedBufferResultMatcher.cpp
|
||||
tinyxml2/tinyxml2.h
|
||||
tinyxml2/tinyxml2.cpp)
|
||||
target_link_libraries(test_xmltester PRIVATE geos)
|
||||
target_include_directories(test_xmltester
|
||||
PRIVATE
|
||||
$<BUILD_INTERFACE:${CMAKE_CURRENT_LIST_DIR}>/tinyxml)
|
||||
|
||||
add_executable(test_simplewkttester ${simplewkttester_SOURCES})
|
||||
|
||||
if(APPLE AND GEOS_ENABLE_MACOSX_FRAMEWORK)
|
||||
target_link_libraries(test_simplewkttester GEOS)
|
||||
else()
|
||||
target_link_libraries(test_simplewkttester geos)
|
||||
endif()
|
||||
|
||||
add_executable(test_xmltester ${xmltester_SOURCES})
|
||||
|
||||
if(APPLE AND GEOS_ENABLE_MACOSX_FRAMEWORK)
|
||||
target_link_libraries(test_xmltester GEOS)
|
||||
else()
|
||||
target_link_libraries(test_xmltester geos)
|
||||
endif()
|
||||
|
||||
set(XMLTESTS_DIR ${CMAKE_CURRENT_SOURCE_DIR}/tests)
|
||||
set(SAVE_XMLTESTS
|
||||
${XMLTESTS_DIR}/general/TestBoundary.xml
|
||||
${XMLTESTS_DIR}/general/TestBuffer.xml
|
||||
${XMLTESTS_DIR}/general/TestBufferMitredJoin.xml
|
||||
${XMLTESTS_DIR}/general/TestCentroid.xml
|
||||
${XMLTESTS_DIR}/general/TestConvexHull-big.xml
|
||||
${XMLTESTS_DIR}/general/TestConvexHull.xml
|
||||
${XMLTESTS_DIR}/general/TestDensify.xml
|
||||
${XMLTESTS_DIR}/general/TestDistance.xml
|
||||
${XMLTESTS_DIR}/general/TestEqualsExact.xml
|
||||
${XMLTESTS_DIR}/general/TestFunctionAA.xml
|
||||
${XMLTESTS_DIR}/general/TestFunctionAAPrec.xml
|
||||
${XMLTESTS_DIR}/general/TestFunctionLA.xml
|
||||
${XMLTESTS_DIR}/general/TestFunctionLAPrec.xml
|
||||
${XMLTESTS_DIR}/general/TestFunctionLL.xml
|
||||
${XMLTESTS_DIR}/general/TestFunctionLLPrec.xml
|
||||
${XMLTESTS_DIR}/general/TestFunctionPA.xml
|
||||
${XMLTESTS_DIR}/general/TestFunctionPL.xml
|
||||
${XMLTESTS_DIR}/general/TestFunctionPLPrec.xml
|
||||
${XMLTESTS_DIR}/general/TestFunctionPP.xml
|
||||
${XMLTESTS_DIR}/general/TestInteriorPoint.xml
|
||||
${XMLTESTS_DIR}/general/TestMinimumClearance.xml
|
||||
${XMLTESTS_DIR}/general/TestPreparedPointPredicate.xml
|
||||
${XMLTESTS_DIR}/general/TestPreparedPolygonPredicate.xml
|
||||
${XMLTESTS_DIR}/general/TestPreparedPredicatesWithGeometryCollection.xml
|
||||
${XMLTESTS_DIR}/general/TestRectanglePredicate.xml
|
||||
${XMLTESTS_DIR}/general/TestRelateAA.xml
|
||||
${XMLTESTS_DIR}/general/TestRelateAC.xml
|
||||
${XMLTESTS_DIR}/general/TestRelateLA.xml
|
||||
${XMLTESTS_DIR}/general/TestRelateLC.xml
|
||||
${XMLTESTS_DIR}/general/TestRelateLL.xml
|
||||
${XMLTESTS_DIR}/general/TestRelatePA.xml
|
||||
${XMLTESTS_DIR}/general/TestRelatePL.xml
|
||||
${XMLTESTS_DIR}/general/TestRelatePP.xml
|
||||
${XMLTESTS_DIR}/general/TestSimple.xml
|
||||
${XMLTESTS_DIR}/general/TestUnaryUnion.xml
|
||||
${XMLTESTS_DIR}/general/TestUnaryUnionFloating.xml
|
||||
${XMLTESTS_DIR}/general/TestValid.xml
|
||||
${XMLTESTS_DIR}/general/TestValid2-big.xml
|
||||
${XMLTESTS_DIR}/general/TestValid2.xml
|
||||
${XMLTESTS_DIR}/general/TestWithinDistance.xml
|
||||
${XMLTESTS_DIR}/misc/Buffer-1.xml
|
||||
${XMLTESTS_DIR}/misc/Buffer-2.xml
|
||||
${XMLTESTS_DIR}/misc/InvalidRelates.xml
|
||||
${XMLTESTS_DIR}/misc/Segfaults.xml
|
||||
${XMLTESTS_DIR}/misc/TestBufferExternal-1.xml
|
||||
${XMLTESTS_DIR}/misc/TestBufferExternal-2.xml
|
||||
${XMLTESTS_DIR}/misc/TestIsValid.xml
|
||||
${XMLTESTS_DIR}/misc/buildarea.xml
|
||||
${XMLTESTS_DIR}/misc/fme.xml
|
||||
${XMLTESTS_DIR}/misc/heisenbugs.xml
|
||||
${XMLTESTS_DIR}/misc/hexwkb.xml
|
||||
${XMLTESTS_DIR}/misc/hole_from_shell.xml
|
||||
${XMLTESTS_DIR}/misc/hole_red.xml
|
||||
${XMLTESTS_DIR}/misc/linemerge.xml
|
||||
${XMLTESTS_DIR}/misc/makevalid.xml
|
||||
${XMLTESTS_DIR}/misc/robustness.xml
|
||||
${XMLTESTS_DIR}/misc/safe-16595.xml
|
||||
${XMLTESTS_DIR}/misc/safe-16596.xml
|
||||
${XMLTESTS_DIR}/misc/safe-TestBufferJagged.xml
|
||||
${XMLTESTS_DIR}/misc/singlesidedbuffer.xml
|
||||
${XMLTESTS_DIR}/misc/stmlf-20061020-invalid-output.xml
|
||||
${XMLTESTS_DIR}/misc/stmlf-20061020.xml
|
||||
${XMLTESTS_DIR}/misc/stmlf-20070119.xml
|
||||
${XMLTESTS_DIR}/misc/split.xml
|
||||
${XMLTESTS_DIR}/robust/TestRobustOverlayFixed.xml
|
||||
${XMLTESTS_DIR}/robust/TestRobustRelate.xml
|
||||
${XMLTESTS_DIR}/issue/issue-geos-176.xml
|
||||
${XMLTESTS_DIR}/issue/issue-geos-188.xml
|
||||
${XMLTESTS_DIR}/issue/issue-geos-244.xml
|
||||
${XMLTESTS_DIR}/issue/issue-geos-275.xml
|
||||
${XMLTESTS_DIR}/issue/issue-geos-350.xml
|
||||
${XMLTESTS_DIR}/issue/issue-geos-356.xml
|
||||
${XMLTESTS_DIR}/issue/issue-geos-358.xml
|
||||
${XMLTESTS_DIR}/issue/issue-geos-360.xml
|
||||
${XMLTESTS_DIR}/issue/issue-geos-366.xml
|
||||
${XMLTESTS_DIR}/issue/issue-geos-392.xml
|
||||
${XMLTESTS_DIR}/issue/issue-geos-398.xml
|
||||
${XMLTESTS_DIR}/issue/issue-geos-434.xml
|
||||
${XMLTESTS_DIR}/issue/issue-geos-459.xml
|
||||
${XMLTESTS_DIR}/issue/issue-geos-527.xml
|
||||
${XMLTESTS_DIR}/issue/issue-geos-569.xml
|
||||
${XMLTESTS_DIR}/issue/issue-geos-582.xml
|
||||
${XMLTESTS_DIR}/issue/issue-geos-586.xml
|
||||
${XMLTESTS_DIR}/issue/issue-geos-599.xml
|
||||
${XMLTESTS_DIR}/issue/issue-geos-605.xml
|
||||
${XMLTESTS_DIR}/issue/issue-geos-615.xml
|
||||
${XMLTESTS_DIR}/issue/issue-geos-716.xml
|
||||
${XMLTESTS_DIR}/issue/issue-geos-837.xml
|
||||
${XMLTESTS_DIR}/issue/issue-geos-838.xml
|
||||
${XMLTESTS_DIR}/validate/TestRelateAA-big.xml
|
||||
${XMLTESTS_DIR}/validate/TestRelateAA.xml
|
||||
${XMLTESTS_DIR}/validate/TestRelateAC.xml
|
||||
${XMLTESTS_DIR}/validate/TestRelateLA.xml
|
||||
${XMLTESTS_DIR}/validate/TestRelateLC.xml
|
||||
${XMLTESTS_DIR}/validate/TestRelateLL.xml
|
||||
${XMLTESTS_DIR}/validate/TestRelatePA.xml
|
||||
${XMLTESTS_DIR}/validate/TestRelatePL.xml
|
||||
${XMLTESTS_DIR}/validate/TestRelatePP.xml
|
||||
)
|
||||
|
||||
set(FAILING_XMLTESTS
|
||||
${XMLTESTS_DIR}/issue/issue-geos-488.xml
|
||||
${XMLTESTS_DIR}/issue/issue-geos-344.xml
|
||||
${XMLTESTS_DIR}/robust/TestRobustRelateFloat.xml
|
||||
${XMLTESTS_DIR}/failure/TestOverlay.xml
|
||||
${XMLTESTS_DIR}/misc/TestBigNastyBuffer.xml
|
||||
${XMLTESTS_DIR}/misc/TestSameDirection.xml
|
||||
)
|
||||
|
||||
add_test(test_xmltester ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/test_xmltester -v --test-valid-output ${SAVE_XMLTESTS})
|
||||
|
||||
set(STATUS_RESULT "ON")
|
||||
endif()
|
||||
|
||||
message(STATUS "${STATUS_MESSAGE} - ${STATUS_RESULT}")
|
||||
file(GLOB_RECURSE _tests ${CMAKE_CURRENT_LIST_DIR}/tests/*.xml CONFIGURE_DEPEND)
|
||||
list(FILTER _tests EXCLUDE REGEX failure)
|
||||
add_test(NAME test_xmltester COMMAND test_xmltester --test-valid-output ${_tests})
|
||||
unset(_tests)
|
||||
|
|
|
|||
|
|
@ -117,11 +117,11 @@ INVALID_OUTPUT_XMLTESTS =
|
|||
|
||||
FAILING_XMLTESTS = \
|
||||
$(srcdir)/tests/failure/TestOverlay.xml \
|
||||
$(srcdir)/tests/issue/issue-geos-488.xml \
|
||||
$(srcdir)/tests/issue/issue-geos-344.xml \
|
||||
$(srcdir)/tests/robust/TestRobustRelateFloat.xml \
|
||||
$(srcdir)/tests/misc/TestBigNastyBuffer.xml \
|
||||
$(srcdir)/tests/misc/TestSameDirection.xml
|
||||
$(srcdir)/tests/failure/issue-geos-488.xml \
|
||||
$(srcdir)/tests/failure/issue-geos-344.xml \
|
||||
$(srcdir)/tests/failure/robust-TestRobustRelateFloat.xml \
|
||||
$(srcdir)/tests/failure/misc-TestBigNastyBuffer.xml \
|
||||
$(srcdir)/tests/failure/misc-TestSameDirection.xml
|
||||
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -11,31 +11,43 @@
|
|||
#
|
||||
#################################################################################
|
||||
|
||||
if(UNIX OR MINGW)
|
||||
|
||||
if(APPLE AND GEOS_ENABLE_MACOSX_FRAMEWORK AND GEOS_ENABLE_MACOSX_FRAMEWORK_UNIXCOMPAT)
|
||||
set(installdest GEOS.framework/Versions/${VERSION_MAJOR}/unix/bin)
|
||||
set(prefix ${CMAKE_INSTALL_PREFIX}/GEOS.framework/Versions/${VERSION_MAJOR}/unix)
|
||||
elseif(APPLE AND GEOS_ENABLE_MACOSX_FRAMEWORK)
|
||||
# just a dummy so installdest not set
|
||||
# want geos-config only for Mac unix build or framework+unixcompat
|
||||
else()
|
||||
set(installdest bin)
|
||||
set(prefix ${CMAKE_INSTALL_PREFIX})
|
||||
endif()
|
||||
configure_file(${CMAKE_CURRENT_SOURCE_DIR}/geos-config.in
|
||||
${CMAKE_CURRENT_BINARY_DIR}/geos-config)
|
||||
|
||||
set(exec_prefix ${prefix}/bin)
|
||||
set(libdir ${prefix}/lib)
|
||||
|
||||
if(installdest)
|
||||
configure_file(${CMAKE_CURRENT_SOURCE_DIR}/geos-config.in
|
||||
${CMAKE_CURRENT_BINARY_DIR}/geos-config @ONLY)
|
||||
install(FILES ${CMAKE_CURRENT_BINARY_DIR}/geos-config
|
||||
DESTINATION bin
|
||||
PERMISSIONS
|
||||
OWNER_READ OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE)
|
||||
|
||||
install(FILES ${CMAKE_CURRENT_BINARY_DIR}/geos-config
|
||||
DESTINATION ${installdest}
|
||||
PERMISSIONS
|
||||
OWNER_READ OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE)
|
||||
endif()
|
||||
|
||||
endif()
|
||||
add_subdirectory(astyle)
|
||||
|
||||
# if(UNIX OR MINGW)
|
||||
|
||||
# if(APPLE AND GEOS_ENABLE_MACOSX_FRAMEWORK AND GEOS_ENABLE_MACOSX_FRAMEWORK_UNIXCOMPAT)
|
||||
# set(installdest GEOS.framework/Versions/${VERSION_MAJOR}/unix/bin)
|
||||
# set(prefix ${CMAKE_INSTALL_PREFIX}/GEOS.framework/Versions/${VERSION_MAJOR}/unix)
|
||||
# elseif(APPLE AND GEOS_ENABLE_MACOSX_FRAMEWORK)
|
||||
# # just a dummy so installdest not set
|
||||
# # want geos-config only for Mac unix build or framework+unixcompat
|
||||
# else()
|
||||
# set(installdest bin)
|
||||
# set(prefix ${CMAKE_INSTALL_PREFIX})
|
||||
# endif()
|
||||
|
||||
# set(exec_prefix ${prefix}/bin)
|
||||
# set(libdir ${prefix}/lib)
|
||||
|
||||
# if(installdest)
|
||||
# configure_file(${CMAKE_CURRENT_SOURCE_DIR}/geos-config.in
|
||||
# ${CMAKE_CURRENT_BINARY_DIR}/geos-config @ONLY)
|
||||
|
||||
# install(FILES ${CMAKE_CURRENT_BINARY_DIR}/geos-config
|
||||
# DESTINATION ${installdest}
|
||||
# PERMISSIONS
|
||||
# OWNER_READ OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE)
|
||||
# endif()
|
||||
|
||||
# endif()
|
||||
|
||||
|
|
|
|||
|
|
@ -14,7 +14,3 @@ file(GLOB_RECURSE astyle_SOURCES ${CMAKE_CURRENT_SOURCE_DIR}/*.cpp)
|
|||
add_executable(astyle ${astyle_SOURCES})
|
||||
# message(STATUS "Enable AStyle")
|
||||
|
||||
#################################################################################
|
||||
# Group source files for IDE source explorers (e.g. Visual Studio)
|
||||
#################################################################################
|
||||
GenerateSourceGroups(tools/astyle)
|
||||
|
|
|
|||
|
|
@ -1,7 +1,8 @@
|
|||
#!/bin/sh
|
||||
prefix=@prefix@
|
||||
exec_prefix=@exec_prefix@
|
||||
libdir=@libdir@
|
||||
|
||||
prefix=@CMAKE_INSTALL_PREFIX@
|
||||
exec_prefix=@CMAKE_INSTALL_PREFIX@/bin
|
||||
libdir=@CMAKE_INSTALL_PREFIX@/lib
|
||||
|
||||
usage()
|
||||
{
|
||||
|
|
@ -22,9 +23,11 @@ Options:
|
|||
EOF
|
||||
exit $1
|
||||
}
|
||||
|
||||
if test $# -eq 0; then
|
||||
usage 1 1>&2
|
||||
fi
|
||||
|
||||
while test $# -gt 0; do
|
||||
case "$1" in
|
||||
-*=*) optarg=`echo "$1" | sed 's/[-_a-zA-Z0-9]*=//'` ;;
|
||||
|
|
@ -32,36 +35,34 @@ case "$1" in
|
|||
esac
|
||||
case $1 in
|
||||
--prefix)
|
||||
echo ${prefix}
|
||||
;;
|
||||
echo @CMAKE_INSTALL_PREFIX@
|
||||
;;
|
||||
--version)
|
||||
echo @VERSION@
|
||||
;;
|
||||
echo @GEOS_VERSION@
|
||||
;;
|
||||
--cflags)
|
||||
echo -I${prefix}/include
|
||||
echo -I@CMAKE_INSTALL_PREFIX@/include
|
||||
;;
|
||||
--libs)
|
||||
# TODO: make an alias for --clibs
|
||||
# see http://trac.osgeo.org/geos/ticket/497
|
||||
echo -L${libdir} -lgeos-@VERSION_RELEASE@
|
||||
echo -L@CMAKE_INSTALL_PREFIX@/lib -lgeos-@GEOS_VERSION_MAJOR@
|
||||
;;
|
||||
--clibs)
|
||||
echo -L${libdir} -lgeos_c
|
||||
echo -L@CMAKE_INSTALL_PREFIX@/lib -lgeos_c
|
||||
;;
|
||||
--cclibs)
|
||||
echo -L${libdir} -lgeos
|
||||
echo -L@CMAKE_INSTALL_PREFIX@/lib -lgeos
|
||||
;;
|
||||
--static-clibs)
|
||||
echo -L${libdir} -lgeos_c -lgeos -lm
|
||||
echo -L@CMAKE_INSTALL_PREFIX@/lib -lgeos_c -lgeos -lm
|
||||
;;
|
||||
--static-cclibs)
|
||||
echo -L${libdir} -lgeos -lm
|
||||
echo -L@CMAKE_INSTALL_PREFIX@/lib -lgeos -lm
|
||||
;;
|
||||
--ldflags)
|
||||
echo -L${libdir}
|
||||
echo -L@CMAKE_INSTALL_PREFIX@/lib -lgeos
|
||||
;;
|
||||
--includes)
|
||||
echo ${prefix}/include
|
||||
echo @CMAKE_INSTALL_PREFIX@/include
|
||||
;;
|
||||
--jtsport)
|
||||
echo @JTS_PORT@
|
||||
|
|
|
|||
Loading…
Reference in New Issue