-
Notifications
You must be signed in to change notification settings - Fork 53
/
Copy pathCMakeLists.txt
89 lines (74 loc) · 2.82 KB
/
CMakeLists.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
# Collect source files into the "sources" variable and unit test files into the
# "gtest_sources" variable.
gz_get_libsources_and_unittests(sources gtest_sources)
if (MSVC)
# Warning #4251 is the "dll-interface" warning that tells you when types used
# by a class are not being exported. These generated source files have private
# members that don't get exported, so they trigger this warning. However, the
# warning is not important since those members do not need to be interfaced
# with.
set_source_files_properties(${sources} ${gtest_sources} COMPILE_FLAGS "/wd4251")
endif()
set(engine_name "ogre2")
gz_add_component(${engine_name} SOURCES ${sources} GET_TARGET_NAME ogre2_target)
set_property(
SOURCE Ogre2RenderEngine.cc
PROPERTY COMPILE_DEFINITIONS
OGRE2_RESOURCE_PATH="${OGRE2_RESOURCE_PATH}"
OGRE2_VERSION="${OGRE2_VERSION}"
)
target_compile_definitions(${ogre2_target}
PRIVATE OGRE_IGNORE_UNKNOWN_DEBUG)
set_property(
TARGET ${ogre2_target}
PROPERTY INSTALL_RPATH
${OGRE2_LIBRARY_DIRS}
)
target_include_directories(${ogre2_target}
PRIVATE
${CMAKE_CURRENT_SOURCE_DIR}
)
target_link_libraries(${ogre2_target}
PUBLIC
${gz-common${GZ_COMMON_VER}_LIBRARIES}
gz-math${GZ_MATH_VER}::eigen3
PRIVATE
gz-plugin${GZ_PLUGIN_VER}::register
${OPENGL_LIBRARIES}
terra
GzOGRE2::GzOGRE2)
if (TARGET OpenGL::EGL)
target_link_libraries(${ogre2_target}
PRIVATE
OpenGL::EGL
)
add_definitions(-DHAVE_EGL=1)
endif()
set (versioned ${CMAKE_SHARED_LIBRARY_PREFIX}${PROJECT_NAME_LOWER}-${engine_name}${CMAKE_SHARED_LIBRARY_SUFFIX})
set (unversioned ${CMAKE_SHARED_LIBRARY_PREFIX}${PROJECT_NAME_NO_VERSION_LOWER}-${engine_name}${CMAKE_SHARED_LIBRARY_SUFFIX})
# Note that plugins are currently being installed in 2 places: /lib and the engine-plugins dir
install(TARGETS ${ogre2_target} DESTINATION ${GZ_RENDERING_ENGINE_INSTALL_DIR})
if (WIN32)
# disable MSVC inherit via dominance warning
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /wd4250")
INSTALL(CODE "EXECUTE_PROCESS(COMMAND ${CMAKE_COMMAND} -E copy
${GZ_RENDERING_ENGINE_INSTALL_DIR}\/${versioned}
${GZ_RENDERING_ENGINE_INSTALL_DIR}\/${unversioned})")
else()
EXECUTE_PROCESS(COMMAND ${CMAKE_COMMAND} -E create_symlink ${versioned} ${unversioned})
INSTALL(FILES ${PROJECT_BINARY_DIR}/${unversioned} DESTINATION ${GZ_RENDERING_ENGINE_INSTALL_DIR})
endif()
if (NOT (APPLE OR WIN32))
option(USE_GLX "Use GLX to create OpenGL contexts." ON)
else()
option(USE_GLX "Use GLX to create OpenGL contexts." OFF)
endif()
if (USE_GLX)
add_definitions(-DHAVE_GLX=1)
endif()
# Build the unit tests
gz_build_tests(TYPE UNIT
SOURCES ${gtest_sources}
LIB_DEPS ${ogre2_target}
ENVIRONMENT GZ_RENDERING_INSTALL_PREFIX=${CMAKE_INSTALL_PREFIX})
install(DIRECTORY "media" DESTINATION ${GZ_RENDERING_RESOURCE_PATH}/ogre2)