2727# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
2828# POSSIBILITY OF SUCH DAMAGE.
2929
30+ include (GenerateExportHeader)
31+
3032set (CMAKE_CXX_STANDARD 11)
3133
3234project (anari_library_visgl LANGUAGES CXX)
@@ -87,23 +89,39 @@ add_library(${PROJECT_NAME} SHARED
8789 src/glad/src/gl.c
8890)
8991
92+ generate_export_header(${PROJECT_NAME}
93+ EXPORT_MACRO_NAME "VISGL_DEVICE_INTERFACE"
94+ )
95+
9096target_include_directories (${PROJECT_NAME}
9197PUBLIC
9298 $<BUILD_INTERFACE:${CMAKE_CURRENT_LIST_DIR} >
93- generated
94- src
95- src/glad/include
96- src/egl/
97- src/glx/
99+ $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR} /generated >
100+ $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR} /src>
101+ $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR} /src/glad/include >
102+ $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR} /src/egl>
103+ $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR} /src/glx>
104+ $<BUILD_INTERFACE:${CMAKE_CURRENT_BINARY_DIR} >
98105)
99106
100107target_link_libraries (${PROJECT_NAME}
101108PUBLIC
102109 anari::anari
103- OpenGL::OpenGL
104110 Threads::Threads
105111)
106112
113+ if (WIN32 )
114+ target_link_libraries (${PROJECT_NAME}
115+ PUBLIC
116+ OpenGL::GL
117+ )
118+ else ()
119+ target_link_libraries (${PROJECT_NAME}
120+ PUBLIC
121+ OpenGL::OpenGL
122+ )
123+ endif ()
124+
107125if (OpenGL_EGL_FOUND)
108126 target_sources (${PROJECT_NAME} PRIVATE
109127 src/egl/egl_context.cpp
@@ -130,7 +148,7 @@ if(OpenGL_GLX_FOUND AND X11_FOUND)
130148 )
131149 target_include_directories (${PROJECT_NAME}
132150 PUBLIC
133- X11_INCLUDE_DIR
151+ ${ X11_INCLUDE_DIR}
134152 )
135153
136154 target_compile_definitions (${PROJECT_NAME}
@@ -144,8 +162,36 @@ PRIVATE
144162 "anari_library_visgl_EXPORTS"
145163)
146164
165+ if (MSVC )
166+ target_compile_options (${PROJECT_NAME}
167+ PRIVATE
168+ "/bigobj"
169+ )
170+ endif ()
171+
147172install (TARGETS ${PROJECT_NAME}
173+ EXPORT VisGL_Exports
148174 LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
149175 RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
150176 ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
151177)
178+
179+ if (VISRTX_USE_SOVERSION)
180+ set_target_properties (${PROJECT_NAME}
181+ PROPERTIES VERSION ${PROJECT_VERSION} SOVERSION ${PROJECT_VERSION_MAJOR} )
182+
183+ install (TARGETS ${PROJECT_NAME}
184+ EXPORT VisGL_Exports
185+ LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
186+ NAMELINK_SKIP
187+ # on Windows put the dlls into bin
188+ RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
189+ # ... and the import lib into the devel package
190+ ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
191+ )
192+ endif ()
193+
194+ install (EXPORT VisGL_Exports
195+ DESTINATION ${VISRTX_CMAKE_INSTALL_DESTINATION}
196+ NAMESPACE VisGL::
197+ )
0 commit comments