Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

CMake modernization #446

Merged
merged 29 commits into from
Dec 6, 2023
Merged
Show file tree
Hide file tree
Changes from 19 commits
Commits
Show all changes
29 commits
Select commit Hold shift + click to select a range
deb90b7
CMake: Rename old CMakeLists.txt
hobyst Mar 13, 2023
104fdb3
CMake modernization
hobyst Apr 12, 2023
e1ff002
Various fixes
hobyst Sep 2, 2023
7ad098f
Output compiled DLLs and samples in same directory
hobyst Sep 2, 2023
12467e1
Refactor SFML handling
hobyst Sep 3, 2023
a866f82
Use IMPORTED targets for handled external dependencies
hobyst Sep 3, 2023
95f94a8
Put utility CMake functions in a separate file
hobyst Sep 4, 2023
962bfd1
Implement enumerated lists for option selection
hobyst Sep 6, 2023
6304d18
Add bitmapfont sample
hobyst Sep 6, 2023
d75db75
CI: Change Ubuntu version and fix SDL issues
hobyst Sep 7, 2023
fd3a5ab
Clean up of older build pipeline files
hobyst Sep 8, 2023
27a12a1
Add comments to some CMake files
hobyst Sep 8, 2023
94131f2
Add rules to CONTRIBUTING.md and apply them
hobyst Sep 9, 2023
c77605a
Various changes
hobyst Sep 9, 2023
a65abdc
Prevent target collision on Emscripten modules
hobyst Sep 10, 2023
62f28e7
Remove SDK notice due to not found native libs
hobyst Sep 11, 2023
fa67257
Respect chosen runtime output directory
hobyst Sep 11, 2023
26da46f
Find SDL2 as soft dependency
hobyst Sep 11, 2023
ea46ed4
Accommodate automatic selection of samples backend
hobyst Sep 11, 2023
6b13b51
Clean up Tests directory
hobyst Sep 11, 2023
7286191
Use GLVND as preferred OpenGL ABI on Linux
hobyst Sep 11, 2023
17fc5d0
Correct logic for the Freetype pre-proc definition
hobyst Dec 2, 2023
a07be67
Change options names according to new convention
hobyst Dec 2, 2023
be27445
Correct SFML handling
hobyst Dec 2, 2023
52f459e
Change conditions for the Freetype MSVC warning
hobyst Dec 2, 2023
8e037f4
Change sample CMake target names
hobyst Dec 2, 2023
4f25480
Change handling of samples that require Freetype
hobyst Dec 2, 2023
fb1eabd
Move SDL_image find module for Ubuntu up a folder
hobyst Dec 2, 2023
6760b65
Remove mention of SFML <= 2.4 in comment
hobyst Dec 4, 2023
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
14 changes: 7 additions & 7 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -4,13 +4,12 @@ on: [push, pull_request]

jobs:
Linux:
runs-on: ubuntu-latest
runs-on: ubuntu-20.04

env:
BUILD_TYPE: Release
CC: "${{ matrix.cc }}"
CXX: "${{ matrix.cxx }}"
CMAKE_PREFIX_PATH: "/usr"

strategy:
fail-fast: false
Expand All @@ -21,13 +20,13 @@ jobs:
cmake_options: -DRMLUI_ENABLE_PRECOMPILED_HEADERS=OFF -DRMLUI_SAMPLES_BACKEND=GLFW_GL2
- cc: clang
cxx: clang++
cmake_options: -DRMLUI_SAMPLES_BACKEND=SDL_VK -DSDL_LIBRARY=SDL2 -DSDL_INCLUDE_DIR=/usr/include/SDL2
cmake_options: -DRMLUI_SAMPLES_BACKEND=SDL_VK
- cmake_options: -DRMLUI_BUILD_TESTING=ON -DRMLUI_ENABLE_PRECOMPILED_HEADERS=OFF
enable_testing: true
- cmake_options: -DRMLUI_ENABLE_LOTTIE_PLUGIN=ON -DRMLUI_SAMPLES_BACKEND=X11_GL2
- cmake_options: -DRMLUI_DISABLE_RTTI_AND_EXCEPTIONS=ON -DRMLUI_SAMPLES_BACKEND=SDL_GL2 -DSDL_LIBRARY=SDL2 -DSDL_INCLUDE_DIR=/usr/include/SDL2 -DSDL_IMAGE_LIBRARY=/usr/lib/x86_64-linux-gnu/libSDL2_image-2.0.so.0 -DSDL_IMAGE_INCLUDE_DIR=/usr/include/SDL2
- cmake_options: -DRMLUI_NO_THIRDPARTY_CONTAINERS=ON -DRMLUI_SAMPLES_BACKEND=SFML_GL2
- cmake_options: -DRMLUI_SAMPLES_BACKEND=SDL_VK -DRMLUI_VK_DEBUG=ON -DRMLUI_ENABLE_PRECOMPILED_HEADERS=OFF -DCMAKE_BUILD_TYPE=Debug -DSDL_LIBRARY=SDL2 -DSDL_INCLUDE_DIR=/usr/include/SDL2
- cmake_options: -DRMLUI_DISABLE_RTTI_AND_EXCEPTIONS=ON -DRMLUI_SAMPLES_BACKEND=SDL_GL2
- cmake_options: -DRMLUI_NO_THIRDPARTY_CONTAINERS=ON -DRMLUI_SAMPLES_BACKEND=SFML_GL2
- cmake_options: -DRMLUI_SAMPLES_BACKEND=SDL_VK -DRMLUI_VK_DEBUG=ON -DRMLUI_ENABLE_PRECOMPILED_HEADERS=OFF -DCMAKE_BUILD_TYPE=Debug

steps:
- uses: actions/checkout@v3
Expand All @@ -44,6 +43,7 @@ jobs:
working-directory: ${{github.workspace}}/Build
run: >-
cmake $GITHUB_WORKSPACE -G Ninja -DCMAKE_BUILD_TYPE=$BUILD_TYPE -DRMLUI_BUILD_LUA_BINDINGS=ON -DRMLUI_BUILD_SAMPLES=ON -DWARNINGS_AS_ERRORS=ON
-DCMAKE_MODULE_PATH=$GITHUB_WORKSPACE/CMake/Modules/CI/Linux
${{ matrix.cmake_options }}

- name: Build
Expand Down Expand Up @@ -124,7 +124,7 @@ jobs:
working-directory: ${{github.workspace}}/Build
run: >-
cmake $env:GITHUB_WORKSPACE -A x64 -DBUILD_SHARED_LIBS=ON -DCMAKE_BUILD_TYPE=$env:BUILD_TYPE -DRMLUI_BUILD_LUA_BINDINGS=ON -DRMLUI_BUILD_SAMPLES=ON -DWARNINGS_AS_ERRORS=ON
-DCMAKE_TOOLCHAIN_FILE="C:/vcpkg/scripts/buildsystems/vcpkg.cmake" ${{ matrix.cmake_options }} -DRMLUI_USING_VCPKG=TRUE
-DCMAKE_TOOLCHAIN_FILE="C:/vcpkg/scripts/buildsystems/vcpkg.cmake" ${{ matrix.cmake_options }}

- name: Build
working-directory: ${{github.workspace}}/Build
Expand Down
228 changes: 116 additions & 112 deletions CMake/Backends.cmake
Original file line number Diff line number Diff line change
@@ -1,158 +1,162 @@
# List of available backends
list(APPEND RMLUI_SAMPLES_AVAILABLE_BACKENDS
"Win32_GL2"
"Win32_VK"
"X11_GL2"
"SDL_GL2"
"SDL_GL3"
"SDL_VK"
"SDL_SDLrenderer"
"SFML_GL2"
"GLFW_GL2"
"GLFW_GL3"
"GLFW_VK"
)
#[[
Details about sample backends, their source code files and linking requirements

Everytime a new backend gets added or its target name is modified, please update
the list of available backends found in OptionsLists.cmake

list(APPEND RMLUI_BACKEND_COMMON_HDR_FILES
${PROJECT_SOURCE_DIR}/Backends/RmlUi_Backend.h
This file is not meant to be used by consumers of the library, only by the RmlUi CMake project
]]

add_library(rmlui_backend_common_headers INTERFACE)
target_sources(rmlui_backend_common_headers INTERFACE
"${PROJECT_SOURCE_DIR}/Backends/RmlUi_Backend.h"
)

add_library(rmlui_backend_Win32_GL2 INTERFACE)
target_sources(rmlui_backend_Win32_GL2 INTERFACE
${RMLUI_BACKEND_COMMON_HDR_FILES}
${PROJECT_SOURCE_DIR}/Backends/RmlUi_Platform_Win32.cpp
${PROJECT_SOURCE_DIR}/Backends/RmlUi_Renderer_GL2.cpp
${PROJECT_SOURCE_DIR}/Backends/RmlUi_Backend_Win32_GL2.cpp
${PROJECT_SOURCE_DIR}/Backends/RmlUi_Platform_Win32.h
${PROJECT_SOURCE_DIR}/Backends/RmlUi_Renderer_GL2.h
${PROJECT_SOURCE_DIR}/Backends/RmlUi_Include_Windows.h
"${PROJECT_SOURCE_DIR}/Backends/RmlUi_Platform_Win32.cpp"
"${PROJECT_SOURCE_DIR}/Backends/RmlUi_Renderer_GL2.cpp"
"${PROJECT_SOURCE_DIR}/Backends/RmlUi_Backend_Win32_GL2.cpp"
"${PROJECT_SOURCE_DIR}/Backends/RmlUi_Platform_Win32.h"
"${PROJECT_SOURCE_DIR}/Backends/RmlUi_Renderer_GL2.h"
"${PROJECT_SOURCE_DIR}/Backends/RmlUi_Include_Windows.h"
)
target_link_libraries(rmlui_backend_Win32_GL2 INTERFACE OpenGL::GL)
target_link_libraries(rmlui_backend_Win32_GL2 INTERFACE rmlui_backend_common_headers OpenGL::GL)

add_library(rmlui_backend_Win32_VK INTERFACE)
target_sources(rmlui_backend_Win32_VK INTERFACE
${RMLUI_BACKEND_COMMON_HDR_FILES}
${PROJECT_SOURCE_DIR}/Backends/RmlUi_Platform_Win32.cpp
${PROJECT_SOURCE_DIR}/Backends/RmlUi_Renderer_VK.cpp
${PROJECT_SOURCE_DIR}/Backends/RmlUi_Backend_Win32_VK.cpp
${PROJECT_SOURCE_DIR}/Backends/RmlUi_Platform_Win32.h
${PROJECT_SOURCE_DIR}/Backends/RmlUi_Renderer_VK.h
${PROJECT_SOURCE_DIR}/Backends/RmlUi_Vulkan/ShadersCompiledSPV.h
${PROJECT_SOURCE_DIR}/Backends/RmlUi_Vulkan/vk_mem_alloc.h
target_sources(rmlui_backend_Win32_VK INTERFACE
"${PROJECT_SOURCE_DIR}/Backends/RmlUi_Platform_Win32.cpp"
"${PROJECT_SOURCE_DIR}/Backends/RmlUi_Renderer_VK.cpp"
"${PROJECT_SOURCE_DIR}/Backends/RmlUi_Backend_Win32_VK.cpp"
"${PROJECT_SOURCE_DIR}/Backends/RmlUi_Platform_Win32.h"
"${PROJECT_SOURCE_DIR}/Backends/RmlUi_Renderer_VK.h"
"${PROJECT_SOURCE_DIR}/Backends/RmlUi_Vulkan/ShadersCompiledSPV.h"
"${PROJECT_SOURCE_DIR}/Backends/RmlUi_Vulkan/vk_mem_alloc.h"
)
target_link_libraries(rmlui_backend_Win32_VK INTERFACE Vulkan::Vulkan)
target_link_libraries(rmlui_backend_Win32_VK INTERFACE rmlui_backend_common_headers Vulkan::Vulkan)

add_library(rmlui_backend_X11_GL2 INTERFACE)
target_sources(rmlui_backend_X11_GL2 INTERFACE
${RMLUI_BACKEND_COMMON_HDR_FILES}
${PROJECT_SOURCE_DIR}/Backends/RmlUi_Platform_X11.cpp
${PROJECT_SOURCE_DIR}/Backends/RmlUi_Renderer_GL2.cpp
${PROJECT_SOURCE_DIR}/Backends/RmlUi_Backend_X11_GL2.cpp
${PROJECT_SOURCE_DIR}/Backends/RmlUi_Platform_X11.h
${PROJECT_SOURCE_DIR}/Backends/RmlUi_Renderer_GL2.h
${PROJECT_SOURCE_DIR}/Backends/RmlUi_Include_Xlib.h
target_sources(rmlui_backend_X11_GL2 INTERFACE
"${PROJECT_SOURCE_DIR}/Backends/RmlUi_Platform_X11.cpp"
"${PROJECT_SOURCE_DIR}/Backends/RmlUi_Renderer_GL2.cpp"
"${PROJECT_SOURCE_DIR}/Backends/RmlUi_Backend_X11_GL2.cpp"
"${PROJECT_SOURCE_DIR}/Backends/RmlUi_Platform_X11.h"
"${PROJECT_SOURCE_DIR}/Backends/RmlUi_Renderer_GL2.h"
"${PROJECT_SOURCE_DIR}/Backends/RmlUi_Include_Xlib.h"
)

# RMLUI_CMAKE_MINIMUM_VERSION_RAISE_NOTICE:
# Once the minimum CMake version is CMake >= 3.14, "${X11_LIBRARIES}" should
# be substituted by "X11:X11" in addition to any of the other imported that might
# be required. More info:
# https://cmake.org/cmake/help/latest/module/FindX11.html
target_link_libraries(rmlui_backend_X11_GL2 INTERFACE OpenGL::GL ${X11_LIBRARIES})
target_link_libraries(rmlui_backend_X11_GL2 INTERFACE rmlui_backend_common_headers OpenGL::GL ${X11_LIBRARIES})

add_library(rmlui_backend_SDL_GL2 INTERFACE)
target_sources(rmlui_backend_SDL_GL2 INTERFACE
${RMLUI_BACKEND_COMMON_HDR_FILES}
${PROJECT_SOURCE_DIR}/Backends/RmlUi_Platform_SDL.cpp
${PROJECT_SOURCE_DIR}/Backends/RmlUi_Renderer_GL2.cpp
${PROJECT_SOURCE_DIR}/Backends/RmlUi_Backend_SDL_GL2.cpp
${PROJECT_SOURCE_DIR}/Backends/RmlUi_Platform_SDL.h
${PROJECT_SOURCE_DIR}/Backends/RmlUi_Renderer_GL2.h
target_sources(rmlui_backend_SDL_GL2 INTERFACE
"${PROJECT_SOURCE_DIR}/Backends/RmlUi_Platform_SDL.cpp"
"${PROJECT_SOURCE_DIR}/Backends/RmlUi_Renderer_GL2.cpp"
"${PROJECT_SOURCE_DIR}/Backends/RmlUi_Backend_SDL_GL2.cpp"
"${PROJECT_SOURCE_DIR}/Backends/RmlUi_Platform_SDL.h"
"${PROJECT_SOURCE_DIR}/Backends/RmlUi_Renderer_GL2.h"
)
target_link_libraries(rmlui_backend_SDL_GL2 INTERFACE OpenGL::GL SDL::SDL GLEW::GLEW SDL::Image)
target_link_libraries(rmlui_backend_SDL_GL2 INTERFACE rmlui_backend_common_headers OpenGL::GL SDL2::SDL2 GLEW::GLEW SDL2_image::SDL2_image)

add_library(rmlui_backend_SDL_GL3 INTERFACE)
target_sources(rmlui_backend_SDL_GL3 INTERFACE
${RMLUI_BACKEND_COMMON_HDR_FILES}
${PROJECT_SOURCE_DIR}/Backends/RmlUi_Platform_SDL.cpp
${PROJECT_SOURCE_DIR}/Backends/RmlUi_Renderer_GL3.cpp
${PROJECT_SOURCE_DIR}/Backends/RmlUi_Backend_SDL_GL3.cpp
${PROJECT_SOURCE_DIR}/Backends/RmlUi_Platform_SDL.h
${PROJECT_SOURCE_DIR}/Backends/RmlUi_Renderer_GL3.h
${PROJECT_SOURCE_DIR}/Backends/RmlUi_Include_GL3.h
target_sources(rmlui_backend_SDL_GL3 INTERFACE
"${PROJECT_SOURCE_DIR}/Backends/RmlUi_Platform_SDL.cpp"
"${PROJECT_SOURCE_DIR}/Backends/RmlUi_Renderer_GL3.cpp"
"${PROJECT_SOURCE_DIR}/Backends/RmlUi_Backend_SDL_GL3.cpp"
"${PROJECT_SOURCE_DIR}/Backends/RmlUi_Platform_SDL.h"
"${PROJECT_SOURCE_DIR}/Backends/RmlUi_Renderer_GL3.h"
"${PROJECT_SOURCE_DIR}/Backends/RmlUi_Include_GL3.h"
)
target_link_libraries(rmlui_backend_SDL_GL3 INTERFACE OpenGL::GL SDL::SDL SDL::Image)
target_link_libraries(rmlui_backend_SDL_GL3 INTERFACE rmlui_backend_common_headers OpenGL::GL SDL2::SDL2 SDL2_image::SDL2_image)
if(UNIX)
# The OpenGL 3 renderer implementation uses dlopen/dlclose
# This is required in some UNIX and UNIX-like operating systems to load shared object files at runtime
target_link_libraries(rmlui_backend_SDL_GL3 INTERFACE ${CMAKE_DL_LIBS})
endif()

add_library(rmlui_backend_SDL_VK INTERFACE)
target_sources(rmlui_backend_SDL_VK INTERFACE
${RMLUI_BACKEND_COMMON_HDR_FILES}
${PROJECT_SOURCE_DIR}/Backends/RmlUi_Platform_SDL.cpp
${PROJECT_SOURCE_DIR}/Backends/RmlUi_Renderer_VK.cpp
${PROJECT_SOURCE_DIR}/Backends/RmlUi_Backend_SDL_VK.cpp
${PROJECT_SOURCE_DIR}/Backends/RmlUi_Platform_SDL.h
${PROJECT_SOURCE_DIR}/Backends/RmlUi_Renderer_VK.h
${PROJECT_SOURCE_DIR}/Backends/RmlUi_Vulkan/ShadersCompiledSPV.h
${PROJECT_SOURCE_DIR}/Backends/RmlUi_Vulkan/vk_mem_alloc.h
target_sources(rmlui_backend_SDL_VK INTERFACE
"${PROJECT_SOURCE_DIR}/Backends/RmlUi_Platform_SDL.cpp"
"${PROJECT_SOURCE_DIR}/Backends/RmlUi_Renderer_VK.cpp"
"${PROJECT_SOURCE_DIR}/Backends/RmlUi_Backend_SDL_VK.cpp"
"${PROJECT_SOURCE_DIR}/Backends/RmlUi_Platform_SDL.h"
"${PROJECT_SOURCE_DIR}/Backends/RmlUi_Renderer_VK.h"
"${PROJECT_SOURCE_DIR}/Backends/RmlUi_Vulkan/ShadersCompiledSPV.h"
"${PROJECT_SOURCE_DIR}/Backends/RmlUi_Vulkan/vk_mem_alloc.h"
)
target_link_libraries(rmlui_backend_SDL_VK INTERFACE Vulkan::Vulkan SDL::SDL)
target_link_libraries(rmlui_backend_SDL_VK INTERFACE rmlui_backend_common_headers Vulkan::Vulkan SDL2::SDL2)
if(UNIX)
# The Vulkan renderer implementation uses dlopen/dlclose
# This is required in some UNIX and UNIX-like operating systems to load shared object files at runtime
target_link_libraries(rmlui_backend_SDL_VK INTERFACE ${CMAKE_DL_LIBS})
endif()

add_library(rmlui_backend_SDL_SDLrenderer INTERFACE)
target_sources(rmlui_backend_SDL_SDLrenderer INTERFACE
${RMLUI_BACKEND_COMMON_HDR_FILES}
${PROJECT_SOURCE_DIR}/Backends/RmlUi_Renderer_SDL.cpp
${PROJECT_SOURCE_DIR}/Backends/RmlUi_Platform_SDL.cpp
${PROJECT_SOURCE_DIR}/Backends/RmlUi_Backend_SDL_SDLrenderer.cpp
${PROJECT_SOURCE_DIR}/Backends/RmlUi_Platform_SDL.h
${PROJECT_SOURCE_DIR}/Backends/RmlUi_Renderer_SDL.h
target_sources(rmlui_backend_SDL_SDLrenderer INTERFACE
"${PROJECT_SOURCE_DIR}/Backends/RmlUi_Renderer_SDL.cpp"
"${PROJECT_SOURCE_DIR}/Backends/RmlUi_Platform_SDL.cpp"
"${PROJECT_SOURCE_DIR}/Backends/RmlUi_Backend_SDL_SDLrenderer.cpp"
"${PROJECT_SOURCE_DIR}/Backends/RmlUi_Platform_SDL.h"
"${PROJECT_SOURCE_DIR}/Backends/RmlUi_Renderer_SDL.h"
)
target_link_libraries(rmlui_backend_SDL_SDLrenderer INTERFACE SDL::SDL SDL::Image)
target_link_libraries(rmlui_backend_SDL_SDLrenderer INTERFACE rmlui_backend_common_headers SDL2::SDL2 SDL2_image::SDL2_image)

add_library(rmlui_backend_SFML_GL2 INTERFACE)
target_sources(rmlui_backend_SFML_GL2 INTERFACE
${RMLUI_BACKEND_COMMON_HDR_FILES}
${PROJECT_SOURCE_DIR}/Backends/RmlUi_Platform_SFML.cpp
${PROJECT_SOURCE_DIR}/Backends/RmlUi_Renderer_GL2.cpp
${PROJECT_SOURCE_DIR}/Backends/RmlUi_Backend_SFML_GL2.cpp
${PROJECT_SOURCE_DIR}/Backends/RmlUi_Platform_SFML.h
${PROJECT_SOURCE_DIR}/Backends/RmlUi_Renderer_GL2.h
target_sources(rmlui_backend_SFML_GL2 INTERFACE
"${PROJECT_SOURCE_DIR}/Backends/RmlUi_Platform_SFML.cpp"
"${PROJECT_SOURCE_DIR}/Backends/RmlUi_Renderer_GL2.cpp"
"${PROJECT_SOURCE_DIR}/Backends/RmlUi_Backend_SFML_GL2.cpp"
"${PROJECT_SOURCE_DIR}/Backends/RmlUi_Platform_SFML.h"
"${PROJECT_SOURCE_DIR}/Backends/RmlUi_Renderer_GL2.h"
)
target_link_libraries(rmlui_backend_SFML_GL2 INTERFACE OpenGL::GL
rmlui_SFML_old_wrapper SFML::Graphics SFML::Window SFML::System
target_link_libraries(rmlui_backend_SFML_GL2 INTERFACE
rmlui_backend_common_headers OpenGL::GL rmlui_SFML_old_wrapper SFML::Graphics SFML::Window SFML::System
)
if(WIN32)
target_link_libraries(rmlui_backend_SFML_GL2 INTERFACE SFML::Main)
endif()
hobyst marked this conversation as resolved.
Show resolved Hide resolved

add_library(rmlui_backend_GLFW_GL2 INTERFACE)
target_sources(rmlui_backend_GLFW_GL2 INTERFACE
${RMLUI_BACKEND_COMMON_HDR_FILES}
${PROJECT_SOURCE_DIR}/Backends/RmlUi_Platform_GLFW.cpp
${PROJECT_SOURCE_DIR}/Backends/RmlUi_Renderer_GL2.cpp
${PROJECT_SOURCE_DIR}/Backends/RmlUi_Backend_GLFW_GL2.cpp
${PROJECT_SOURCE_DIR}/Backends/RmlUi_Platform_GLFW.h
${PROJECT_SOURCE_DIR}/Backends/RmlUi_Renderer_GL2.h
target_sources(rmlui_backend_GLFW_GL2 INTERFACE
"${PROJECT_SOURCE_DIR}/Backends/RmlUi_Platform_GLFW.cpp"
"${PROJECT_SOURCE_DIR}/Backends/RmlUi_Renderer_GL2.cpp"
"${PROJECT_SOURCE_DIR}/Backends/RmlUi_Backend_GLFW_GL2.cpp"
"${PROJECT_SOURCE_DIR}/Backends/RmlUi_Platform_GLFW.h"
"${PROJECT_SOURCE_DIR}/Backends/RmlUi_Renderer_GL2.h"
)
target_link_libraries(rmlui_backend_GLFW_GL2 INTERFACE OpenGL::GL glfw)
target_link_libraries(rmlui_backend_GLFW_GL2 INTERFACE rmlui_backend_common_headers OpenGL::GL glfw)

add_library(rmlui_backend_GLFW_GL3 INTERFACE)
target_sources(rmlui_backend_GLFW_GL3 INTERFACE
${RMLUI_BACKEND_COMMON_HDR_FILES}
${PROJECT_SOURCE_DIR}/Backends/RmlUi_Platform_GLFW.cpp
${PROJECT_SOURCE_DIR}/Backends/RmlUi_Renderer_GL3.cpp
${PROJECT_SOURCE_DIR}/Backends/RmlUi_Backend_GLFW_GL3.cpp
${PROJECT_SOURCE_DIR}/Backends/RmlUi_Platform_GLFW.h
${PROJECT_SOURCE_DIR}/Backends/RmlUi_Renderer_GL3.h
${PROJECT_SOURCE_DIR}/Backends/RmlUi_Include_GL3.h
target_sources(rmlui_backend_GLFW_GL3 INTERFACE
"${PROJECT_SOURCE_DIR}/Backends/RmlUi_Platform_GLFW.cpp"
"${PROJECT_SOURCE_DIR}/Backends/RmlUi_Renderer_GL3.cpp"
"${PROJECT_SOURCE_DIR}/Backends/RmlUi_Backend_GLFW_GL3.cpp"
"${PROJECT_SOURCE_DIR}/Backends/RmlUi_Platform_GLFW.h"
"${PROJECT_SOURCE_DIR}/Backends/RmlUi_Renderer_GL3.h"
"${PROJECT_SOURCE_DIR}/Backends/RmlUi_Include_GL3.h"
)
target_link_libraries(rmlui_backend_GLFW_GL3 INTERFACE OpenGL::GL glfw)
target_link_libraries(rmlui_backend_GLFW_GL3 INTERFACE rmlui_backend_common_headers OpenGL::GL glfw)
if(UNIX)
# The OpenGL 3 renderer implementation uses dlopen/dlclose
# This is required in some UNIX and UNIX-like operating systems to load shared object files at runtime
target_link_libraries(rmlui_backend_GLFW_GL3 INTERFACE ${CMAKE_DL_LIBS})
endif()

add_library(rmlui_backend_GLFW_VK INTERFACE)
target_sources(rmlui_backend_GLFW_VK INTERFACE
${RMLUI_BACKEND_COMMON_HDR_FILES}
${PROJECT_SOURCE_DIR}/Backends/RmlUi_Platform_GLFW.cpp
${PROJECT_SOURCE_DIR}/Backends/RmlUi_Renderer_VK.cpp
${PROJECT_SOURCE_DIR}/Backends/RmlUi_Backend_GLFW_VK.cpp
${PROJECT_SOURCE_DIR}/Backends/RmlUi_Platform_GLFW.h
${PROJECT_SOURCE_DIR}/Backends/RmlUi_Renderer_VK.h
target_sources(rmlui_backend_GLFW_VK INTERFACE
"${PROJECT_SOURCE_DIR}/Backends/RmlUi_Platform_GLFW.cpp"
"${PROJECT_SOURCE_DIR}/Backends/RmlUi_Renderer_VK.cpp"
"${PROJECT_SOURCE_DIR}/Backends/RmlUi_Backend_GLFW_VK.cpp"
"${PROJECT_SOURCE_DIR}/Backends/RmlUi_Platform_GLFW.h"
"${PROJECT_SOURCE_DIR}/Backends/RmlUi_Renderer_VK.h"
)
target_link_libraries(rmlui_backend_GLFW_VK INTERFACE Vulkan::Vulkan glfw)
target_link_libraries(rmlui_backend_GLFW_VK INTERFACE rmlui_backend_common_headers Vulkan::Vulkan glfw)
if(UNIX)
# The Vulkan renderer implementation uses dlopen/dlclose
# This is required in some UNIX and UNIX-like operating systems to load shared object files at runtime
target_link_libraries(rmlui_backend_GLFW_VK INTERFACE ${CMAKE_DL_LIBS})
endif()
Loading