aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--CMakeLists.txt6
-rw-r--r--cmake/ProjConfig.cmake2
-rw-r--r--cmake/ProjTest.cmake14
-rw-r--r--src/lib_proj.cmake2
-rw-r--r--test/googletest/CMakeLists.txt.in6
-rw-r--r--test/unit/CMakeLists.txt39
6 files changed, 38 insertions, 31 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 18a90b44..bad926ce 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -225,9 +225,9 @@ endif()
# 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 PROJ libraries.
-set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${PROJECT_BINARY_DIR}/lib)
-set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${PROJECT_BINARY_DIR}/lib)
-set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${PROJECT_BINARY_DIR}/bin)
+set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${PROJ_BINARY_DIR}/lib)
+set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${PROJ_BINARY_DIR}/lib)
+set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${PROJ_BINARY_DIR}/bin)
link_directories(${CMAKE_LIBRARY_OUTPUT_DIRECTORY})
################################################################################
diff --git a/cmake/ProjConfig.cmake b/cmake/ProjConfig.cmake
index fa085384..3dc2133b 100644
--- a/cmake/ProjConfig.cmake
+++ b/cmake/ProjConfig.cmake
@@ -41,7 +41,7 @@ set(PACKAGE_VERSION "${${PROJECT_NAME}_VERSION}")
# check if a second proj_config.h exists (created by ./configure)
# as this is within CMake's C_INCLUDES / CXX_INCLUDES
-set(AUTOCONF_PROJ_CONFIG_H "${CMAKE_SOURCE_DIR}/src/proj_config.h")
+set(AUTOCONF_PROJ_CONFIG_H "${PROJ_SOURCE_DIR}/src/proj_config.h")
if(EXISTS ${AUTOCONF_PROJ_CONFIG_H})
message(WARNING
"Autoconf's ${AUTOCONF_PROJ_CONFIG_H} may interfere with this "
diff --git a/cmake/ProjTest.cmake b/cmake/ProjTest.cmake
index 04f40c5d..7833c78d 100644
--- a/cmake/ProjTest.cmake
+++ b/cmake/ProjTest.cmake
@@ -3,8 +3,10 @@
#
function(proj_test_set_properties TESTNAME)
- set_tests_properties( ${TESTNAME}
- PROPERTIES ENVIRONMENT "PROJ_IGNORE_USER_WRITABLE_DIRECTORY=YES;PROJ_LIB=${PROJECT_BINARY_DIR}/data/for_tests")
+ set_property(TEST ${TESTNAME}
+ PROPERTY ENVIRONMENT
+ "PROJ_SKIP_READ_USER_WRITABLE_DIRECTORY=YES"
+ "PROJ_LIB=${PROJ_BINARY_DIR}/data/for_tests")
endfunction()
function(proj_add_test_script_sh SH_NAME BIN_USE)
@@ -12,8 +14,8 @@ function(proj_add_test_script_sh SH_NAME BIN_USE)
get_filename_component(testname ${SH_NAME} NAME_WE)
add_test(NAME "${testname}"
- WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/data
- COMMAND bash ${PROJECT_SOURCE_DIR}/test/cli/${SH_NAME}
+ WORKING_DIRECTORY ${PROJ_SOURCE_DIR}/data
+ COMMAND bash ${PROJ_SOURCE_DIR}/test/cli/${SH_NAME}
${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/${${BIN_USE}}
)
proj_test_set_properties(${testname})
@@ -25,9 +27,9 @@ endfunction()
function(proj_add_gie_test TESTNAME TESTCASE)
set(GIE_BIN $<TARGET_FILE_NAME:gie>)
- set(TESTFILE ${CMAKE_SOURCE_DIR}/test/${TESTCASE})
+ set(TESTFILE ${PROJ_SOURCE_DIR}/test/${TESTCASE})
add_test(NAME ${TESTNAME}
- WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/test
+ WORKING_DIRECTORY ${PROJ_SOURCE_DIR}/test
COMMAND ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/${GIE_BIN}
${TESTFILE}
)
diff --git a/src/lib_proj.cmake b/src/lib_proj.cmake
index d08a0ddf..8978e20f 100644
--- a/src/lib_proj.cmake
+++ b/src/lib_proj.cmake
@@ -292,7 +292,7 @@ source_group("Source Files\\Transformations"
source_group("Source Files\\ISO19111"
FILES ${SRC_LIBPROJ_ISO19111})
-include_directories(${CMAKE_SOURCE_DIR}/include)
+include_directories(${PROJ_SOURCE_DIR}/include)
include_directories(${CMAKE_CURRENT_BINARY_DIR})
source_group("CMake Files" FILES CMakeLists.txt)
diff --git a/test/googletest/CMakeLists.txt.in b/test/googletest/CMakeLists.txt.in
index dbe3effe..b558e203 100644
--- a/test/googletest/CMakeLists.txt.in
+++ b/test/googletest/CMakeLists.txt.in
@@ -8,11 +8,11 @@ ExternalProject_Add(googletest
URL https://github.com/google/googletest/archive/release-1.8.1.zip
URL_HASH SHA1=7b41ea3682937069e3ce32cb06619fead505795e
DOWNLOAD_NO_PROGRESS ON
- SOURCE_DIR "${CMAKE_BINARY_DIR}/googletest-src"
- BINARY_DIR "${CMAKE_BINARY_DIR}/googletest-build"
+ SOURCE_DIR "${PROJ_BINARY_DIR}/googletest-src"
+ BINARY_DIR "${PROJ_BINARY_DIR}/googletest-build"
CONFIGURE_COMMAND ""
BUILD_COMMAND ""
TEST_COMMAND ""
# Disable install step
INSTALL_COMMAND ""
-) \ No newline at end of file
+)
diff --git a/test/unit/CMakeLists.txt b/test/unit/CMakeLists.txt
index 398738ad..62932aae 100644
--- a/test/unit/CMakeLists.txt
+++ b/test/unit/CMakeLists.txt
@@ -17,17 +17,17 @@ message(STATUS "Using internal GTest")
# Source https://github.com/google/googletest/blob/master/googletest/README.md
# Download and unpack googletest at configure time
configure_file(
- ${CMAKE_SOURCE_DIR}/test/googletest/CMakeLists.txt.in
- ${CMAKE_BINARY_DIR}/googletest-download/CMakeLists.txt)
+ ${PROJ_SOURCE_DIR}/test/googletest/CMakeLists.txt.in
+ ${PROJ_BINARY_DIR}/googletest-download/CMakeLists.txt)
execute_process(COMMAND ${CMAKE_COMMAND} -G "${CMAKE_GENERATOR}" .
RESULT_VARIABLE result
- WORKING_DIRECTORY ${CMAKE_BINARY_DIR}/googletest-download)
+ WORKING_DIRECTORY ${PROJ_BINARY_DIR}/googletest-download)
if(result)
message(FATAL_ERROR "CMake step for googletest failed: ${result}")
endif()
execute_process(COMMAND ${CMAKE_COMMAND} --build .
RESULT_VARIABLE result
- WORKING_DIRECTORY ${CMAKE_BINARY_DIR}/googletest-download)
+ WORKING_DIRECTORY ${PROJ_BINARY_DIR}/googletest-download)
if(result)
message(FATAL_ERROR "Build step for googletest failed: ${result}")
endif()
@@ -38,8 +38,8 @@ set(gtest_force_shared_crt ON CACHE BOOL "" FORCE)
# the gtest and gtest_main targets.
option(INSTALL_GTEST "Enable installation of googletest" OFF)
add_subdirectory(
- ${CMAKE_BINARY_DIR}/googletest-src
- ${CMAKE_BINARY_DIR}/googletest-build
+ ${PROJ_BINARY_DIR}/googletest-src
+ ${PROJ_BINARY_DIR}/googletest-build
EXCLUDE_FROM_ALL)
# Provide the same target name as find_package(GTest)
@@ -55,14 +55,20 @@ if(MSVC AND BUILD_SHARED_LIBS)
add_definitions(-DPROJ_MSVC_DLL_IMPORT=1)
endif()
-include_directories(${CMAKE_SOURCE_DIR}/include)
+include_directories(${PROJ_SOURCE_DIR}/include)
include_directories(${SQLITE3_INCLUDE_DIR})
# Add the directory containing proj_config.h
-include_directories(${CMAKE_BINARY_DIR}/src)
+include_directories(${PROJ_BINARY_DIR}/src)
# Apply to targets in the current directory and below
add_compile_options(${PROJ_CXX_WARN_FLAGS})
+set(PROJ_TEST_ENVIRONMENT
+ "PROJ_SKIP_READ_USER_WRITABLE_DIRECTORY=YES"
+ "PROJ_LIB=${PROJ_BINARY_DIR}/data/for_tests"
+ "PROJ_SOURCE_DATA=${PROJ_SOURCE_DIR}/data"
+)
+
add_executable(proj_pj_transform_test
main.cpp
pj_transform_test.cpp)
@@ -71,7 +77,7 @@ target_link_libraries(proj_pj_transform_test
${PROJ_LIBRARIES})
add_test(NAME proj_pj_transform_test COMMAND proj_pj_transform_test)
set_property(TEST proj_pj_transform_test
- PROPERTY ENVIRONMENT "PROJ_SKIP_READ_USER_WRITABLE_DIRECTORY=YES;PROJ_LIB=${PROJECT_BINARY_DIR}/data/for_tests")
+ PROPERTY ENVIRONMENT ${PROJ_TEST_ENVIRONMENT})
add_executable(proj_errno_string_test
@@ -82,7 +88,7 @@ target_link_libraries(proj_errno_string_test
${PROJ_LIBRARIES})
add_test(NAME proj_errno_string_test COMMAND proj_errno_string_test)
set_property(TEST proj_errno_string_test
- PROPERTY ENVIRONMENT "PROJ_SKIP_READ_USER_WRITABLE_DIRECTORY=YES;PROJ_LIB=${PROJECT_BINARY_DIR}/data/for_tests")
+ PROPERTY ENVIRONMENT ${PROJ_TEST_ENVIRONMENT})
add_executable(proj_angular_io_test
main.cpp
@@ -92,7 +98,7 @@ target_link_libraries(proj_angular_io_test
${PROJ_LIBRARIES})
add_test(NAME proj_angular_io_test COMMAND proj_angular_io_test)
set_property(TEST proj_angular_io_test
- PROPERTY ENVIRONMENT "PROJ_SKIP_READ_USER_WRITABLE_DIRECTORY=YES;PROJ_LIB=${PROJECT_BINARY_DIR}/data/for_tests")
+ PROPERTY ENVIRONMENT ${PROJ_TEST_ENVIRONMENT})
add_executable(proj_context_test
main.cpp
@@ -102,7 +108,7 @@ target_link_libraries(proj_context_test
${PROJ_LIBRARIES})
add_test(NAME proj_context_test COMMAND proj_context_test)
set_property(TEST proj_context_test
- PROPERTY ENVIRONMENT "PROJ_SKIP_READ_USER_WRITABLE_DIRECTORY=YES;PROJ_LIB=${PROJECT_BINARY_DIR}/data/for_tests")
+ PROPERTY ENVIRONMENT ${PROJ_TEST_ENVIRONMENT})
if(MSVC AND BUILD_SHARED_LIBS)
# ph_phi2_test not compatible of a .dll build
@@ -115,7 +121,7 @@ else()
${PROJ_LIBRARIES})
add_test(NAME pj_phi2_test COMMAND pj_phi2_test)
set_property(TEST pj_phi2_test
- PROPERTY ENVIRONMENT "PROJ_SKIP_READ_USER_WRITABLE_DIRECTORY=YES;PROJ_LIB=${PROJECT_BINARY_DIR}/data/for_tests")
+ PROPERTY ENVIRONMENT ${PROJ_TEST_ENVIRONMENT})
endif()
add_executable(proj_test_cpp_api
@@ -136,7 +142,7 @@ target_link_libraries(proj_test_cpp_api
${SQLITE3_LIBRARY})
add_test(NAME proj_test_cpp_api COMMAND proj_test_cpp_api)
set_property(TEST proj_test_cpp_api
- PROPERTY ENVIRONMENT "PROJ_SKIP_READ_USER_WRITABLE_DIRECTORY=YES;PROJ_LIB=${PROJECT_BINARY_DIR}/data/for_tests")
+ PROPERTY ENVIRONMENT ${PROJ_TEST_ENVIRONMENT})
add_executable(gie_self_tests
@@ -147,8 +153,7 @@ target_link_libraries(gie_self_tests
${PROJ_LIBRARIES})
add_test(NAME gie_self_tests COMMAND gie_self_tests)
set_property(TEST gie_self_tests
- PROPERTY ENVIRONMENT "PROJ_SKIP_READ_USER_WRITABLE_DIRECTORY=YES;PROJ_LIB=${PROJECT_BINARY_DIR}/data/for_tests")
-
+ PROPERTY ENVIRONMENT ${PROJ_TEST_ENVIRONMENT})
add_executable(test_network
main.cpp
@@ -164,4 +169,4 @@ target_link_libraries(test_network
${SQLITE3_LIBRARY})
add_test(NAME test_network COMMAND test_network)
set_property(TEST test_network
- PROPERTY ENVIRONMENT "PROJ_SKIP_READ_USER_WRITABLE_DIRECTORY=YES;PROJ_LIB=${PROJECT_BINARY_DIR}/data/for_tests;PROJ_SOURCE_DATA=${PROJECT_SOURCE_DIR}/data")
+ PROPERTY ENVIRONMENT ${PROJ_TEST_ENVIRONMENT})