Skip to content

Commit c72e150

Browse files
committed
Update project setup
1 parent f42d5a1 commit c72e150

File tree

319 files changed

+68
-153329
lines changed

Some content is hidden

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

319 files changed

+68
-153329
lines changed

.gitignore

+1
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
*-build*
12
build*
23
*_build
34
/install

cmake/Findgoogletest.cmake

+28
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
2+
# googletest_FOUND
3+
# Target googletest::googletest
4+
5+
include(FindPackageHandleStandardArgs)
6+
7+
find_package(PkgConfig)
8+
pkg_search_module(GMOCK QUIET gmock_main)
9+
10+
find_package_handle_standard_args(googletest REQUIRED_VARS GMOCK_CFLAGS GMOCK_LDFLAGS)
11+
mark_as_advanced(GMOCK_CFLAGS GMOCK_LDFLAGS)
12+
13+
if (googletest_FOUND)
14+
15+
16+
# Create interface library to link against gmock
17+
add_library(googletest::googletest INTERFACE IMPORTED)
18+
19+
target_link_libraries(googletest::googletest
20+
INTERFACE
21+
${GMOCK_LDFLAGS}
22+
)
23+
24+
target_compile_options(googletest::googletest
25+
INTERFACE
26+
${GMOCK_CFLAGS}
27+
)
28+
endif ()

configure

+21-7
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
#!/bin/bash
22

33
# Default options
4+
45
BUILD_DIR="build"
56
CMAKE_GENERATOR="Unix Makefiles"
67
BUILD_TYPE="Release"
@@ -99,19 +100,33 @@ do
99100
fi
100101
done
101102

103+
if [ "$CMAKE_GENERATOR_OVERRIDE" != "" ]
104+
then
105+
echo "Override CMAKE_GENERATOR to $CMAKE_GENERATOR_OVERRIDE"
106+
CMAKE_GENERATOR="$CMAKE_GENERATOR_OVERRIDE"
107+
fi
108+
109+
if [ -n "$BUILD_DIR_PREFIX" ]; then
110+
BUILD_DIR="${BUILD_DIR_PREFIX}-${BUILD_DIR}"
111+
fi
112+
102113
# Configure build
103-
echo "Configuring ..."
114+
echo "Configuring in \"$BUILD_DIR\""
104115
echo ""
105116

106117
# Create build directory
107-
if [ ! -d "./$BUILD_DIR" ]
118+
if [ ! -d "$BUILD_DIR" ]
108119
then
109-
mkdir $BUILD_DIR
120+
mkdir -p "$BUILD_DIR"
110121
fi
111122

112123
# Configure project
113-
cd $BUILD_DIR
114-
cmake -G "$CMAKE_GENERATOR" "-DCMAKE_BUILD_TYPE=$BUILD_TYPE" $CMAKE_OPTIONS ..
124+
125+
PREVIOUS_DIR=$(pwd)
126+
127+
pushd $BUILD_DIR
128+
echo cmake -G "$CMAKE_GENERATOR" "-DCMAKE_BUILD_TYPE=$BUILD_TYPE" $CMAKE_OPTIONS "$PREVIOUS_DIR"
129+
cmake -G "$CMAKE_GENERATOR" "-DCMAKE_BUILD_TYPE=$BUILD_TYPE" $CMAKE_OPTIONS "$PREVIOUS_DIR"
115130
if [ $? == 0 ]
116131
then
117132
echo ""
@@ -122,5 +137,4 @@ else
122137
echo ""
123138
echo "Configuration failed.";
124139
fi
125-
126-
cd ..
140+
popd

source/tests/CMakeLists.txt

+17-28
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,6 @@ set_policy(CMP0028 NEW) # ENABLE CMP0028: Double colon in target name means ALI
1616
set_policy(CMP0054 NEW) # ENABLE CMP0054: Only interpret if() arguments as variables or keywords when unquoted.
1717
set_policy(CMP0042 NEW) # ENABLE CMP0042: MACOSX_RPATH is enabled by default.
1818
set_policy(CMP0063 NEW) # ENABLE CMP0063: Honor visibility properties for all target types.
19-
set_policy(CMP0037 OLD) # DISABLE CMP0037: Target names should not be reserved and should match a validity pattern.
2019

2120
# Compiler settings and options
2221

@@ -30,7 +29,6 @@ else()
3029
list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/cmake")
3130
endif()
3231

33-
3432
# Function: Build test and add command to execute it via target 'test'
3533
function(add_test_without_ctest target)
3634
add_subdirectory(${target})
@@ -41,40 +39,31 @@ function(add_test_without_ctest target)
4139

4240
add_dependencies(test ${target})
4341
add_custom_command(TARGET test POST_BUILD
44-
COMMAND $<TARGET_FILE:${target}> --gtest_output=xml:gtests-${target}.xml)
42+
COMMAND $<TARGET_FILE:${target}> --gtest_output=xml:gtests-${target}.xml
43+
)
4544
endfunction()
4645

47-
# Build gmock
48-
set(gmock_build_tests OFF CACHE BOOL "")
49-
set(gtest_build_samples OFF CACHE BOOL "")
50-
set(gtest_build_tests OFF CACHE BOOL "")
51-
set(gtest_disable_pthreads OFF CACHE BOOL "")
52-
set(gtest_force_shared_crt ON CACHE BOOL "")
53-
set(gtest_hide_internal_symbols OFF CACHE BOOL "")
54-
55-
add_subdirectory(googletest/googlemock)
56-
57-
# Create interface library to link against gmock
58-
add_library(gmock-dev INTERFACE)
59-
60-
target_include_directories(gmock-dev
61-
SYSTEM INTERFACE
62-
${CMAKE_CURRENT_SOURCE_DIR}/googletest/googletest/include
63-
${CMAKE_CURRENT_SOURCE_DIR}/googletest/googlemock/include
64-
)
65-
66-
target_link_libraries(gmock-dev
67-
INTERFACE
68-
gmock
69-
)
46+
find_package(googletest QUIET)
7047

48+
if (NOT TARGET googletest::googletest)
49+
message(STATUS "Tests skipped: googletest not found")
50+
return()
51+
endif ()
7152

7253
#
7354
# Target 'test'
7455
#
7556

76-
add_custom_target(test)
77-
set_target_properties(test PROPERTIES EXCLUDE_FROM_DEFAULT_BUILD 1)
57+
if (${CMAKE_VERSION} VERSION_LESS "3.11")
58+
set_policy(CMP0037 OLD) # DISABLE CMP0037: Target names should be reserved and should match a validity pattern.
59+
add_custom_target(test)
60+
set_target_properties(test PROPERTIES EXCLUDE_FROM_DEFAULT_BUILD 1)
61+
else ()
62+
if (NOT TARGET test)
63+
add_custom_target(test)
64+
set_target_properties(test PROPERTIES EXCLUDE_FROM_DEFAULT_BUILD 1)
65+
endif()
66+
endif ()
7867

7968

8069
#

source/tests/glesbinding-test/CMakeLists.txt

+1-1
Original file line numberDiff line numberDiff line change
@@ -78,7 +78,7 @@ target_link_libraries(${target}
7878
${DEFAULT_LIBRARIES}
7979
glfw
8080
${META_PROJECT_NAME}::glesbinding
81-
gmock-dev
81+
googletest::googletest
8282
)
8383

8484

source/tests/googletest/.travis.yml

-46
This file was deleted.

source/tests/googletest/CMakeLists.txt

-16
This file was deleted.

source/tests/googletest/README.md

-138
This file was deleted.

0 commit comments

Comments
 (0)