summaryrefslogtreecommitdiff
path: root/build/cmake/testbuild
diff options
context:
space:
mode:
Diffstat (limited to 'build/cmake/testbuild')
-rw-r--r--build/cmake/testbuild/CMakeLists.txt24
-rw-r--r--build/cmake/testbuild/main.c23
2 files changed, 47 insertions, 0 deletions
diff --git a/build/cmake/testbuild/CMakeLists.txt b/build/cmake/testbuild/CMakeLists.txt
new file mode 100644
index 0000000..275e24d
--- /dev/null
+++ b/build/cmake/testbuild/CMakeLists.txt
@@ -0,0 +1,24 @@
+cmake_minimum_required(VERSION 2.8.12)
+project(glew-cmake-test)
+
+find_package(GLEW REQUIRED CONFIG)
+find_package(OpenGL REQUIRED)
+
+add_executable(cmake-test main.c)
+set_target_properties(cmake-test PROPERTIES DEBUG_POSTFIX _d)
+target_link_libraries(cmake-test PRIVATE GLEW::GLEW ${OPENGL_LIBRARIES})
+target_include_directories(cmake-test PRIVATE ${OPENGL_INCLUDE_DIR})
+
+if(CMAKE_VERSION VERSION_LESS 3.0)
+ set(cgex $<CONFIGURATION>)
+else()
+ set(cgex $<CONFIG>)
+endif()
+
+target_compile_definitions(cmake-test PRIVATE
+ -DGLEW_CMAKE_TEST_CONFIG=${cgex}
+ -DGLEW_CMAKE_TEST_TARGET_FILE_NAME=$<TARGET_FILE_NAME:GLEW::GLEW>
+ -DGLEW_CMAKE_TEST_TARGET_TYPE=$<TARGET_PROPERTY:GLEW::GLEW,TYPE>
+ )
+
+install(TARGETS cmake-test DESTINATION bin)
diff --git a/build/cmake/testbuild/main.c b/build/cmake/testbuild/main.c
new file mode 100644
index 0000000..5975817
--- /dev/null
+++ b/build/cmake/testbuild/main.c
@@ -0,0 +1,23 @@
+#include <GL/glew.h>
+
+#include <stdio.h>
+#include <stdlib.h>
+
+#define S(x) SS(x)
+#define SS(x) #x
+
+int main(int argc, char* argv[]) {
+ printf("GLEW CMake test, %s build\n",
+ S(GLEW_CMAKE_TEST_CONFIG));
+ printf("-- linked to %s which is %s\n",
+ S(GLEW_CMAKE_TEST_TARGET_FILE_NAME),
+ S(GLEW_CMAKE_TEST_TARGET_TYPE));
+ const GLubyte* v = glewGetString(GLEW_VERSION);
+ if(v) {
+ printf("-- glewGetString(GLEW_VERSION) returns %s\n-- test passed.\n", v);
+ return EXIT_SUCCESS;
+ } else {
+ printf("-- glewGetString(GLEW_VERSION) returns NULL\n-- test failed.\n");
+ return EXIT_FAILURE;
+ }
+}