Skip to content

Commit b69ec12

Browse files
jctophefabreArthoni
authored andcommitted
Standalone lib structure
1 parent da0d01d commit b69ec12

File tree

196 files changed

+829
-330
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

196 files changed

+829
-330
lines changed

CMake.in.cmake

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
2+
SET(OFLANDR_INSTALL_LIB_PATH "lib")
3+
SET(OFLANDR_INSTALL_INCLUDE_PATH "include/openfluid/landr")
4+
5+
SET(OFLANDR_DIST_PATH "dist")
6+
SET(OFLANDR_DIST_LIB_PATH "${OFLANDR_DIST_PATH}/${OFLANDR_INSTALL_LIB_PATH}")
7+
8+
SET(OFLANDR_TESTS_INPUT_PATH "${CMAKE_SOURCE_DIR}/resources/tests")
9+
SET(OFLANDR_TESTS_OUTPUT_PATH "${CMAKE_BINARY_DIR}/tests/output")
10+
SET(OFLANDR_TESTS_BINARY_PATH "${CMAKE_BINARY_DIR}/tests/bin")

CMakeLists.txt

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
CMAKE_MINIMUM_REQUIRED(VERSION 3.1)
2+
3+
PROJECT(OpenFLUID-LandR CXX)
4+
5+
SET(CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR}/cmake;${CMAKE_MODULE_PATH}")
6+
7+
FIND_PACKAGE(OpenFLUID COMPONENTS base core tools)
8+
9+
INCLUDE(CMake.in.cmake)
10+
11+
12+
IF(NOT CMAKE_BUILD_TYPE)
13+
SET(CMAKE_BUILD_TYPE "Debug")
14+
SET(CMAKE_INSTALL_PREFIX "${OFLANDR_DIST_PATH}")
15+
ENDIF()
16+
17+
IF(CMAKE_BUILD_TYPE MATCHES "Debug" OR CMAKE_BUILD_TYPE MATCHES "RelWithDebInfo")
18+
IF(NOT DEFINED OFLANDR_ENABLE_TESTING)
19+
SET(OFLANDR_ENABLE_TESTING ON)
20+
ENDIF()
21+
ENDIF()
22+
23+
24+
ADD_SUBDIRECTORY(src)
25+
26+
STRING(TOUPPER ${CMAKE_BUILD_TYPE} OFLANDR_BUILD_TYPE)
27+
28+
MESSAGE(STATUS "****************************************")
29+
MESSAGE(STATUS "Build type: ${CMAKE_BUILD_TYPE}")
30+
MESSAGE(STATUS "Compiler: ${CMAKE_CXX_COMPILER}")
31+
MESSAGE(STATUS "Compilation flags for ${CMAKE_BUILD_TYPE}: ${CMAKE_CXX_FLAGS_${OFLANDR_BUILD_TYPE}} ${CMAKE_CXX_FLAGS}")
32+
MESSAGE(STATUS "Install prefix: ${CMAKE_INSTALL_PREFIX}")
33+
MESSAGE(STATUS "OpenFLUID version: ${OpenFLUID_VERSION}")
34+
MESSAGE(STATUS "****************************************")

cmake/FindGEOS.cmake

Lines changed: 191 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,191 @@
1+
##
2+
#
3+
# This file is part of OpenFLUID software
4+
# Copyright(c) 2007, INRA - Montpellier SupAgro
5+
#
6+
#
7+
# == GNU General Public License Usage ==
8+
#
9+
# OpenFLUID is free software: you can redistribute it and/or modify
10+
# it under the terms of the GNU General Public License as published by
11+
# the Free Software Foundation, either version 3 of the License, or
12+
# (at your option) any later version.
13+
#
14+
# OpenFLUID is distributed in the hope that it will be useful,
15+
# but WITHOUT ANY WARRANTY; without even the implied warranty of
16+
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17+
# GNU General Public License for more details.
18+
#
19+
# You should have received a copy of the GNU General Public License
20+
# along with OpenFLUID. If not, see <http://www.gnu.org/licenses/>.
21+
#
22+
#
23+
# == Other Usage ==
24+
#
25+
# Other Usage means a use of OpenFLUID that is inconsistent with the GPL
26+
# license, and requires a written agreement between You and INRA.
27+
# Licensees for Other Usage of OpenFLUID may use this file in accordance
28+
# with the terms contained in the written agreement between You and INRA.
29+
#
30+
##
31+
#
32+
#
33+
# Module for CMake build system helping to find GEOS library
34+
# This module is designed for internal use by the OpenFLUID build configuration
35+
#
36+
# This module provides the following variables
37+
# GEOS_FOUND
38+
# GEOS_VERSION
39+
# GEOS_INCLUDE_DIR
40+
# GEOS_LIBRARY
41+
#
42+
# This module uses hints about search locations from variables
43+
# GEOS_ROOT_DIR
44+
# GEOS_CONFIG_EXTRA_SEARCH_PATHS
45+
# $ENV{OFBUILD_SUPPORT_DIR}
46+
# $ENV{GEOS_HOME}
47+
#
48+
##
49+
50+
51+
IF(GEOS_FOUND)
52+
RETURN()
53+
ENDIF()
54+
55+
56+
IF(WIN32)
57+
58+
INCLUDE($ENV{OFBUILD_SUPPORT_DIR}/share/geos-config.cmake)
59+
60+
FIND_PATH(GEOS_INCLUDE_DIR
61+
NAMES
62+
geos.h
63+
HINTS
64+
$ENV{GEOS_ROOT_DIR}
65+
$ENV{OFBUILD_SUPPORT_DIR}
66+
c:/msys/local
67+
PATH_SUFFIXES
68+
include
69+
)
70+
71+
FIND_LIBRARY(GEOS_LIBRARY
72+
NAMES
73+
geos
74+
PATHS
75+
$ENV{GEOS_ROOT_DIR}
76+
$ENV{OFBUILD_SUPPORT_DIR}
77+
c:/msys/local
78+
PATH_SUFFIXES
79+
bin lib
80+
)
81+
82+
ELSEIF(UNIX)
83+
84+
# add research path for OSX
85+
IF (APPLE)
86+
SET(GEOS_CONFIG_EXTRA_SEARCH_PATHS ${GEOS_CONFIG_EXTRA_SEARCH_PATHS} /Library/Frameworks/GEOS.framework/unix)
87+
ENDIF()
88+
89+
IF (NOT GEOS_CONFIG)
90+
# geos-config is not specified, try to find it
91+
FIND_PROGRAM(GEOS_CONFIG
92+
NAMES
93+
geos-config
94+
HINTS
95+
$ENV{GEOS_ROOT_DIR}
96+
$ENV{GEOS_HOME}
97+
/usr/local
98+
/usr
99+
${GEOS_CONFIG_EXTRA_SEARCH_PATHS}
100+
PATH_SUFFIXES
101+
bin
102+
)
103+
ENDIF()
104+
105+
IF (GEOS_CONFIG)
106+
# get GEOS version using "geos-config --version"
107+
EXECUTE_PROCESS(COMMAND ${GEOS_CONFIG} "--version"
108+
OUTPUT_VARIABLE GEOS_VERSION
109+
OUTPUT_STRIP_TRAILING_WHITESPACE)
110+
111+
STRING(REGEX REPLACE "([0-9]+)\\.([0-9]+)\\.([0-9]+)" "\\1" GEOS_VERSION_MAJOR "${GEOS_VERSION}")
112+
STRING(REGEX REPLACE "([0-9]+)\\.([0-9]+)\\.([0-9]+)" "\\2" GEOS_VERSION_MINOR "${GEOS_VERSION}")
113+
STRING(REGEX REPLACE "([0-9]+)\\.([0-9]+)\\.([0-9]+)" "\\3" GEOS_VERSION_PATCH "${GEOS_VERSION}")
114+
115+
116+
IF(GEOS_VERSION_MAJOR LESS 3 OR (GEOS_VERSION_MAJOR EQUAL 3 AND GEOS_VERSION_MINOR LESS 3))
117+
MESSAGE(FATAL_ERROR "GEOS version must be 3.3.0 or higher (currently ${GEOS_VERSION})")
118+
ENDIF()
119+
120+
121+
# get GEOS install prefix using "geos-config --prefix"
122+
EXECUTE_PROCESS(COMMAND ${GEOS_CONFIG} "--prefix"
123+
OUTPUT_VARIABLE GEOS_PREFIX
124+
OUTPUT_STRIP_TRAILING_WHITESPACE)
125+
126+
127+
# find GEOS include directory
128+
FIND_PATH(GEOS_INCLUDE_DIR
129+
NAMES
130+
geos_c.h
131+
HINTS
132+
$ENV{GEOS_ROOT_DIR}
133+
${GEOS_PREFIX}
134+
/usr
135+
/usr/local
136+
${GEOS_CONFIG_EXTRA_SEARCH_PATHS}
137+
PATH_SUFFIXES
138+
include
139+
)
140+
141+
142+
# find GEOS library directory
143+
EXECUTE_PROCESS(COMMAND ${GEOS_CONFIG} "--libs"
144+
OUTPUT_VARIABLE GEOS_CONFIG_LIBS
145+
OUTPUT_STRIP_TRAILING_WHITESPACE)
146+
147+
# extract library path (-L) and library name (-l) from string returned by "geos-config --libs"
148+
STRING(REPLACE " " ";" GEOS_CONFIG_LIBS_LIST ${GEOS_CONFIG_LIBS} )
149+
150+
FOREACH(_LISTITEM ${GEOS_CONFIG_LIBS_LIST})
151+
STRING(LENGTH ${_LISTITEM} _LISTITEM_LENGTH)
152+
STRING(SUBSTRING ${_LISTITEM} 0 2 _LISTITEM_PREFIX)
153+
MATH(EXPR _LISTITEM_EXTRACTLEN ${_LISTITEM_LENGTH}-2)
154+
IF(${_LISTITEM_PREFIX} STREQUAL "-L")
155+
STRING(SUBSTRING ${_LISTITEM} 2 ${_LISTITEM_EXTRACTLEN} GEOS_LINK_DIRECTORIES)
156+
ELSEIF(${_LISTITEM_PREFIX} STREQUAL "-l")
157+
STRING(SUBSTRING ${_LISTITEM} 2 ${_LISTITEM_EXTRACTLEN} GEOS_LIB_NAME)
158+
ENDIF()
159+
ENDFOREACH()
160+
161+
IF(APPLE)
162+
SET(GEOS_LIBRARY "${GEOS_LINK_DIRECTORIES}/lib${GEOS_LIB_NAME}.dylib")
163+
ELSE()
164+
SET(GEOS_LIBRARY "${GEOS_LINK_DIRECTORIES}/lib${GEOS_LIB_NAME}.so")
165+
ENDIF()
166+
ELSE()
167+
MESSAGE(FATAL_ERROR "FindGEOS.cmake: geos-config was not found. Set it manually using GEOS_CONFIG variable.")
168+
ENDIF()
169+
170+
ENDIF()
171+
172+
173+
###########################################################################
174+
175+
176+
IF(GEOS_INCLUDE_DIR AND GEOS_LIBRARY)
177+
SET(GEOS_FOUND TRUE CACHE STRING INTERNAL)
178+
SET(GEOS_VERSION ${GEOS_VERSION} CACHE STRING INTERNAL)
179+
SET(GEOS_INCLUDE_DIR ${GEOS_INCLUDE_DIR} CACHE STRING INTERNAL)
180+
SET(GEOS_LIBRARY ${GEOS_LIBRARY} CACHE STRING INTERNAL)
181+
ENDIF()
182+
183+
IF(GEOS_FOUND)
184+
IF (NOT GEOS_FIND_QUIETLY)
185+
MESSAGE(STATUS "Found GEOS ${GEOS_VERSION}: ${GEOS_LIBRARY}")
186+
ENDIF (NOT GEOS_FIND_QUIETLY)
187+
ELSE()
188+
MESSAGE(GEOS_INCLUDE_DIR=${GEOS_INCLUDE_DIR})
189+
MESSAGE(GEOS_LIBRARY=${GEOS_LIBRARY})
190+
MESSAGE(FATAL_ERROR "Could not find GEOS")
191+
ENDIF()

resources/tests/BAD_POLYGEOM.dbf

98 Bytes
Binary file not shown.

resources/tests/BAD_POLYGEOM.prj

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
PROJCS["RGF93_Lambert_93",GEOGCS["GCS_RGF93",DATUM["D_RGF_1993",SPHEROID["GRS_1980",6378137,298.257222101]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["standard_parallel_1",49],PARAMETER["standard_parallel_2",44],PARAMETER["latitude_of_origin",46.5],PARAMETER["central_meridian",3],PARAMETER["false_easting",700000],PARAMETER["false_northing",6600000],UNIT["Meter",1]]

resources/tests/BAD_POLYGEOM.shp

1.09 KB
Binary file not shown.

resources/tests/BAD_POLYGEOM.shx

124 Bytes
Binary file not shown.

resources/tests/BAD_POLYTEST.dbf

589 Bytes
Binary file not shown.

resources/tests/BAD_POLYTEST.prj

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137,298.257223563]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]]

resources/tests/BAD_POLYTEST.shp

868 Bytes
Binary file not shown.

0 commit comments

Comments
 (0)