diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 6b95c9222dfc3e7b61ee84f4d54058f15598690b..ec36cf329342b27d551fa2553167600ea3959836 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -172,8 +172,7 @@ test:linux:gcc4.9.2:
- build:linux:gcc4.9.2
script:
- cd build
- - make test
-
+ - make test
test:linux:gcc5.3.1:
stage: test
tags:
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 051e945ae6664a3d0b3c9e6084ee15b7622634fb..a3773b907c971c58ea42b33e468d5619c4839802 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -25,6 +25,7 @@ project(ProjectPhoenix)
set(CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/cmake)
set(CMAKE_CXX_STANDARD 14)
+link_directories(${CMAKE_CURRENT_BINARY_DIR}/lib)
# needs to be first since other scripts might rely on this
include(ConanHelpers)
diff --git a/cmake/Testing.cmake b/cmake/Testing.cmake
index b80bab2232c0aac8b51177182ec51be6d7b28d0f..b10da87d4cca86664ac6ac12cbdb98b86f32edd8 100644
--- a/cmake/Testing.cmake
+++ b/cmake/Testing.cmake
@@ -36,7 +36,7 @@ function(CONFIGURE_MSVC_USERFILE TARGET_NAME PATH_TO_ADD)
"${CMAKE_SOURCE_DIR}/cmake/VisualStudio2013.vcxproj.user.in")
set(DESTINATION_USER_FILE
"${CMAKE_CURRENT_BINARY_DIR}/${TARGET_NAME}.vcxproj.user")
- message("DESTINATION_USER_FILE: ${DESTINATION_USER_FILE}")
+ message(STATUS "DESTINATION_USER_FILE: ${DESTINATION_USER_FILE}")
configure_file(${SOURCE_USER_FILE} ${DESTINATION_USER_FILE} @ONLY)
endfunction()
diff --git a/conanfile.py b/conanfile.py
index 56a20dca056913e1b2051bcc56e0abc544fb8d56..21c3754e42c90869b3474d87fbc612aa3d097633 100644
--- a/conanfile.py
+++ b/conanfile.py
@@ -34,3 +34,20 @@ class ProjectPhoenix(ConanFile):
("SDL2/2.0.5@RWTH-VR/thirdparty"),
("trompeloeil/v25@rollbear/stable")) # comma separated list of requirements
generators = "cmake"
+
+ def configure(self):
+ self.options["glew"].shared = True
+
+ def imports(self):
+ self.copy("*.dll", dst="lib", src="bin")
+ #since cmake cannot easily tell Visual Studio where to find the dlls we have to do the following
+ self.copy("*.dll", dst="tests/Debug", src="bin")
+ self.copy("*.dll", dst="tests/Release", src="bin")
+ self.copy("*.dll", dst="demos/viewer/Debug", src="bin")
+ self.copy("*.dll", dst="demos/viewer/Release", src="bin")
+ self.copy("*.so", dst="lib", src="lib")
+ if self.settings.os == "Linux":
+ self.run("ln -s libGLEW.so lib/libGLEW.so.2.1")
+
+
+
diff --git a/library/CMakeLists.txt b/library/CMakeLists.txt
index a46f99a6a551f46325346ae1327f60c239b57992..b294c7fb5ae25455b66a7952c4da227a9bb9e8ce 100644
--- a/library/CMakeLists.txt
+++ b/library/CMakeLists.txt
@@ -26,18 +26,18 @@ add_library(phoenix
${PHOENIX_SOURCES}
${PHOENIX_HEADERS}
)
+
target_include_directories(phoenix
PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}
PUBLIC ${CMAKE_CURRENT_BINARY_DIR}
- PUBLIC ${GLEW_INCLUDE_DIRS}
- PUBLIC ${OPENGL_INCLUDE_DIR}
+ PUBLIC ${OPENGL_INCLUDE_DIR}
)
target_link_libraries(phoenix
${CONAN_OR_CMAKE_glm}
${CONAN_OR_CMAKE_SDL2}
- ${CONAN_OR_CMAKE_glew}
${OPENGL_LIBRARIES}
+ ${CONAN_OR_CMAKE_glew}
)
generate_export_header(phoenix
diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt
index 9869f325637ff8973ba9273fa136392227ae383b..088567dff006e493bee8ab03516ab2fe1f1007f9 100644
--- a/tests/CMakeLists.txt
+++ b/tests/CMakeLists.txt
@@ -46,13 +46,20 @@ add_test_cpplint(NAME "phoenix-tests--cpplint"
${PHOENIX_TEST_UTILITIES_HEADERS}
)
+#get the include directories
+get_target_property(glew_include_directories
+ ${CONAN_OR_CMAKE_glew} INTERFACE_INCLUDE_DIRECTORIES)
+get_target_property(phoenix_include_directories
+ phoenix INCLUDE_DIRECTORIES)
+get_target_property(sdl2_include_directories
+ ${CONAN_OR_CMAKE_SDL2} INTERFACE_INCLUDE_DIRECTORIES)
+
+# generate opengl_mock
add_library(opengl_mock SHARED
src/mocks/open_gl_mock.cpp
src/mocks/open_gl_mock.hpp
)
-get_target_property(glew_include_directories
- ${CONAN_OR_CMAKE_glew} INTERFACE_INCLUDE_DIRECTORIES)
target_include_directories(opengl_mock
PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/src
PUBLIC ${glew_include_directories})
@@ -91,9 +98,6 @@ add_test_cpplint(NAME "test_clear_pass--cpplint"
set_warning_levels_rwth(test_clear_pass)
# make shure linker dependency injection works
-get_target_property(phoenix_include_directories phoenix INCLUDE_DIRECTORIES)
-get_target_property(glew_include_directories
- ${CONAN_OR_CMAKE_glew} INTERFACE_INCLUDE_DIRECTORIES)
target_include_directories(test_clear_pass
PRIVATE ${phoenix_include_directories}
PRIVATE ${glew_include_directories}
@@ -127,9 +131,6 @@ add_test_cpplint(NAME "test_geometry_pass--cpplint"
set_warning_levels_rwth(test_geometry_pass)
# make shure linker dependency injection works
-get_target_property(phoenix_include_directories phoenix INCLUDE_DIRECTORIES)
-get_target_property(glew_include_directories
- ${CONAN_OR_CMAKE_glew} INTERFACE_INCLUDE_DIRECTORIES)
target_include_directories(test_geometry_pass
PRIVATE ${phoenix_include_directories}
PRIVATE ${glew_include_directories}
@@ -165,10 +166,6 @@ add_test_cpplint(NAME "rendering_system--cpplint"
set_warning_levels_rwth(test_rendering_system)
# make shure linker dependency injection works
-get_target_property(phoenix_include_directories phoenix INCLUDE_DIRECTORIES)
-get_target_property(glew_include_directories
- ${CONAN_OR_CMAKE_glew} INTERFACE_INCLUDE_DIRECTORIES)
-get_target_property(sdl2_include_directories ${CONAN_OR_CMAKE_SDL2} INTERFACE_INCLUDE_DIRECTORIES)
target_include_directories(test_rendering_system
PRIVATE ${phoenix_include_directories}
PRIVATE ${glew_include_directories}
@@ -206,17 +203,11 @@ add_test_cpplint(NAME "test_window--cpplint"
set_warning_levels_rwth(test_window)
# make shure linker dependency injection works
-get_target_property(phoenix_include_directories__test_window phoenix INCLUDE_DIRECTORIES)
-if(TARGET ${CONAN_OR_CMAKE_SDL2})
- get_target_property(sdl2_include_directories__test_window ${CONAN_OR_CMAKE_SDL2} INTERFACE_INCLUDE_DIRECTORIES)
- target_include_directories(test_window
- PRIVATE ${sdl2_include_directories__test_window}
-)
-endif()
target_include_directories(test_window
- PRIVATE ${phoenix_include_directories__test_window}
+ PRIVATE ${phoenix_include_directories}
PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/src
- PRIVATE ${CONAN_OR_CMAKE_SDL2})
+ PRIVATE ${CONAN_OR_CMAKE_SDL2}
+ PRIVATE ${sdl2_include_directories})
get_target_property(phoenix_link_libraries__test_window phoenix LINK_LIBRARIES)
list(REMOVE_ITEM phoenix_link_libraries__test_window ${CONAN_OR_CMAKE_SDL2})
diff --git a/tests/src/test_geometry_pass.cpp b/tests/src/test_geometry_pass.cpp
index b743d88e216826f289f4b5ef6aabc73637e64e93..f292403e307173e28cd048029fabbeb498f31e65 100644
--- a/tests/src/test_geometry_pass.cpp
+++ b/tests/src/test_geometry_pass.cpp
@@ -26,13 +26,12 @@
SUPPRESS_WARNINGS_BEGIN
#include "GL/glew.h"
-SUPPRESS_WARNINGS_END
-
-#include "phx/geometry_pass.hpp"
#include "trompeloeil.hpp"
+SUPPRESS_WARNINGS_END
#include "mocks/open_gl_mock.hpp"
+#include "phx/geometry_pass.hpp"
extern template struct trompeloeil::reporter<trompeloeil::specialized>;
@@ -40,9 +39,9 @@ SCENARIO(
"The geometry pass collects all vertices in one vector and draws them.",
"[phx][phx::GeometryPass]") {
OPENGL_MOCK_ALLOW_ANY_CALL
- const GLuint vertex_buffer_id = 1;
- const GLuint normal_buffer_id = 2;
- const GLuint index_buffer_id = 3;
+ const GLuint vertex_buffer_id = 1u;
+ const GLuint normal_buffer_id = 2u;
+ const GLuint index_buffer_id = 3u;
GIVEN("A geometry pass") {
phx::GeometryPass geometryPass;
@@ -161,7 +160,9 @@ SCENARIO(
}
THEN("it creates one vertex array, three buffers, and assigns them") {
- REQUIRE_CALL(open_gl_mock, glCreateVertexArrays(1, _)).TIMES(1);
+ REQUIRE_CALL(open_gl_mock, glCreateVertexArrays(1, _))
+ .TIMES(1)
+ .SIDE_EFFECT(*_2 = 1);
trompeloeil::sequence seq;
REQUIRE_CALL(open_gl_mock, glCreateBuffers(1, _))
.TIMES(1)