| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480 |
- # Declare RmlUi core library
- # Not explicitly setting library type so that it can be chosen by consumer using BUILD_SHARED_LIBS. Header files are not
- # necessary, but are included to improve navigation and code completion on IDEs and language servers.
- add_library(rmlui_core
- BaseXMLParser.cpp
- Box.cpp
- BoxShadowCache.h
- BoxShadowCache.cpp
- BoxShadowHash.h
- CallbackTexture.cpp
- Clock.cpp
- Clock.h
- CompiledFilterShader.cpp
- ComputedValues.cpp
- ComputeProperty.cpp
- ComputeProperty.h
- Context.cpp
- ContextInstancer.cpp
- ContextInstancerDefault.cpp
- ContextInstancerDefault.h
- ControlledLifetimeResource.h
- ConvolutionFilter.cpp
- Core.cpp
- DataController.cpp
- DataController.h
- DataControllerDefault.cpp
- DataControllerDefault.h
- DataExpression.cpp
- DataExpression.h
- DataModel.cpp
- DataModel.h
- DataModelHandle.cpp
- DataTypeRegister.cpp
- DataVariable.cpp
- DataView.cpp
- DataView.h
- DataViewDefault.cpp
- DataViewDefault.h
- Decorator.cpp
- DecoratorGradient.cpp
- DecoratorGradient.h
- DecoratorNinePatch.cpp
- DecoratorNinePatch.h
- DecoratorShader.cpp
- DecoratorShader.h
- DecoratorText.cpp
- DecoratorText.h
- DecoratorTiled.cpp
- DecoratorTiled.h
- DecoratorTiledBox.cpp
- DecoratorTiledBox.h
- DecoratorTiledHorizontal.cpp
- DecoratorTiledHorizontal.h
- DecoratorTiledImage.cpp
- DecoratorTiledImage.h
- DecoratorTiledVertical.cpp
- DecoratorTiledVertical.h
- DecoratorUtilities.cpp
- DecoratorUtilities.h
- DocumentHeader.cpp
- DocumentHeader.h
- EffectSpecification.cpp
- Element.cpp
- ElementAnimation.cpp
- ElementAnimation.h
- ElementBackgroundBorder.cpp
- ElementBackgroundBorder.h
- ElementDefinition.cpp
- ElementDefinition.h
- ElementDocument.cpp
- ElementEffects.cpp
- ElementEffects.h
- ElementHandle.cpp
- ElementHandle.h
- ElementInstancer.cpp
- ElementMeta.cpp
- ElementMeta.h
- ElementScroll.cpp
- ElementStyle.cpp
- ElementStyle.h
- ElementText.cpp
- ElementUtilities.cpp
- Event.cpp
- EventDispatcher.cpp
- EventDispatcher.h
- EventInstancer.cpp
- EventInstancerDefault.cpp
- EventInstancerDefault.h
- EventListenerInstancer.cpp
- EventSpecification.cpp
- EventSpecification.h
- Factory.cpp
- FileInterface.cpp
- FileInterfaceDefault.cpp
- FileInterfaceDefault.h
- Filter.cpp
- FilterBasic.cpp
- FilterBasic.h
- FilterBlur.cpp
- FilterBlur.h
- FilterDropShadow.cpp
- FilterDropShadow.h
- FontEffect.cpp
- FontEffectBlur.cpp
- FontEffectBlur.h
- FontEffectGlow.cpp
- FontEffectGlow.h
- FontEffectInstancer.cpp
- FontEffectOutline.cpp
- FontEffectOutline.h
- FontEffectShadow.cpp
- FontEffectShadow.h
- FontEngineInterface.cpp
- Geometry.cpp
- GeometryBackgroundBorder.cpp
- GeometryBackgroundBorder.h
- GeometryBoxShadow.cpp
- GeometryBoxShadow.h
- IdNameMap.h
- Log.cpp
- LogDefault.cpp
- LogDefault.h
- Math.cpp
- Memory.cpp
- Memory.h
- MeshUtilities.cpp
- ObserverPtr.cpp
- Plugin.cpp
- PluginRegistry.cpp
- PluginRegistry.h
- Pool.h
- precompiled.h
- Profiling.cpp
- PropertiesIterator.h
- PropertiesIteratorView.cpp
- Property.cpp
- PropertyDefinition.cpp
- PropertyDictionary.cpp
- PropertyParserAnimation.cpp
- PropertyParserAnimation.h
- PropertyParserBoxShadow.cpp
- PropertyParserBoxShadow.h
- PropertyParserColorStopList.cpp
- PropertyParserColorStopList.h
- PropertyParserColour.cpp
- PropertyParserColour.h
- PropertyParserDecorator.cpp
- PropertyParserDecorator.h
- PropertyParserFilter.cpp
- PropertyParserFilter.h
- PropertyParserFontEffect.cpp
- PropertyParserFontEffect.h
- PropertyParserKeyword.cpp
- PropertyParserKeyword.h
- PropertyParserNumber.cpp
- PropertyParserNumber.h
- PropertyParserRatio.cpp
- PropertyParserRatio.h
- PropertyParserString.cpp
- PropertyParserString.h
- PropertyParserTransform.cpp
- PropertyParserTransform.h
- PropertyShorthandDefinition.h
- PropertySpecification.cpp
- RenderInterface.cpp
- RenderInterfaceCompatibility.cpp
- RenderManager.cpp
- RenderManagerAccess.cpp
- RenderManagerAccess.h
- ScrollController.cpp
- ScrollController.h
- Spritesheet.cpp
- Stream.cpp
- StreamFile.cpp
- StreamFile.h
- StreamMemory.cpp
- StringUtilities.cpp
- StyleSheet.cpp
- StyleSheetContainer.cpp
- StyleSheetFactory.cpp
- StyleSheetFactory.h
- StyleSheetNode.cpp
- StyleSheetNode.h
- StyleSheetParser.cpp
- StyleSheetParser.h
- StyleSheetSelector.cpp
- StyleSheetSelector.h
- StyleSheetSpecification.cpp
- SystemInterface.cpp
- Template.cpp
- Template.h
- TemplateCache.cpp
- TemplateCache.h
- Texture.cpp
- TextureDatabase.cpp
- TextureDatabase.h
- TextureLayout.cpp
- TextureLayout.h
- TextureLayoutRectangle.cpp
- TextureLayoutRectangle.h
- TextureLayoutRow.cpp
- TextureLayoutRow.h
- TextureLayoutTexture.cpp
- TextureLayoutTexture.h
- Traits.cpp
- Transform.cpp
- TransformPrimitive.cpp
- TransformState.cpp
- TransformState.h
- TransformUtilities.cpp
- TransformUtilities.h
- Tween.cpp
- TypeConverter.cpp
- URL.cpp
- Variant.cpp
- WidgetScroll.cpp
- WidgetScroll.h
- XMLNodeHandler.cpp
- XMLNodeHandlerBody.cpp
- XMLNodeHandlerBody.h
- XMLNodeHandlerDefault.cpp
- XMLNodeHandlerDefault.h
- XMLNodeHandlerHead.cpp
- XMLNodeHandlerHead.h
- XMLNodeHandlerTemplate.cpp
- XMLNodeHandlerTemplate.h
- XMLParser.cpp
- XMLParseTools.cpp
- XMLParseTools.h
- )
- # Add public headers as files in the project (it's not necessary but convenient for IDE integration)
- # Setting them as PRIVATE so that it's addition doesn't propagate, it won't affect availability since
- # the entire include directory has already been declared as public
- target_sources(rmlui_core PRIVATE
- "${PROJECT_SOURCE_DIR}/Include/RmlUi/Config/Config.h"
- "${PROJECT_SOURCE_DIR}/Include/RmlUi/Core.h"
- "${PROJECT_SOURCE_DIR}/Include/RmlUi/Core/BaseXMLParser.h"
- "${PROJECT_SOURCE_DIR}/Include/RmlUi/Core/Box.h"
- "${PROJECT_SOURCE_DIR}/Include/RmlUi/Core/CallbackTexture.h"
- "${PROJECT_SOURCE_DIR}/Include/RmlUi/Core/Colour.h"
- "${PROJECT_SOURCE_DIR}/Include/RmlUi/Core/Colour.inl"
- "${PROJECT_SOURCE_DIR}/Include/RmlUi/Core/CompiledFilterShader.h"
- "${PROJECT_SOURCE_DIR}/Include/RmlUi/Core/ComputedValues.h"
- "${PROJECT_SOURCE_DIR}/Include/RmlUi/Core/Containers/itlib/flat_map.hpp"
- "${PROJECT_SOURCE_DIR}/Include/RmlUi/Core/Containers/itlib/flat_set.hpp"
- "${PROJECT_SOURCE_DIR}/Include/RmlUi/Core/Containers/robin_hood.h"
- "${PROJECT_SOURCE_DIR}/Include/RmlUi/Core/Context.h"
- "${PROJECT_SOURCE_DIR}/Include/RmlUi/Core/ContextInstancer.h"
- "${PROJECT_SOURCE_DIR}/Include/RmlUi/Core/ConvolutionFilter.h"
- "${PROJECT_SOURCE_DIR}/Include/RmlUi/Core/Core.h"
- "${PROJECT_SOURCE_DIR}/Include/RmlUi/Core/DataModelHandle.h"
- "${PROJECT_SOURCE_DIR}/Include/RmlUi/Core/DataStructHandle.h"
- "${PROJECT_SOURCE_DIR}/Include/RmlUi/Core/DataTypeRegister.h"
- "${PROJECT_SOURCE_DIR}/Include/RmlUi/Core/DataTypes.h"
- "${PROJECT_SOURCE_DIR}/Include/RmlUi/Core/DataVariable.h"
- "${PROJECT_SOURCE_DIR}/Include/RmlUi/Core/Debug.h"
- "${PROJECT_SOURCE_DIR}/Include/RmlUi/Core/DecorationTypes.h"
- "${PROJECT_SOURCE_DIR}/Include/RmlUi/Core/Decorator.h"
- "${PROJECT_SOURCE_DIR}/Include/RmlUi/Core/Dictionary.h"
- "${PROJECT_SOURCE_DIR}/Include/RmlUi/Core/EffectSpecification.h"
- "${PROJECT_SOURCE_DIR}/Include/RmlUi/Core/Element.h"
- "${PROJECT_SOURCE_DIR}/Include/RmlUi/Core/Element.inl"
- "${PROJECT_SOURCE_DIR}/Include/RmlUi/Core/ElementDocument.h"
- "${PROJECT_SOURCE_DIR}/Include/RmlUi/Core/ElementInstancer.h"
- "${PROJECT_SOURCE_DIR}/Include/RmlUi/Core/ElementScroll.h"
- "${PROJECT_SOURCE_DIR}/Include/RmlUi/Core/Elements/ElementForm.h"
- "${PROJECT_SOURCE_DIR}/Include/RmlUi/Core/Elements/ElementFormControl.h"
- "${PROJECT_SOURCE_DIR}/Include/RmlUi/Core/Elements/ElementFormControlInput.h"
- "${PROJECT_SOURCE_DIR}/Include/RmlUi/Core/Elements/ElementFormControlSelect.h"
- "${PROJECT_SOURCE_DIR}/Include/RmlUi/Core/Elements/ElementFormControlTextArea.h"
- "${PROJECT_SOURCE_DIR}/Include/RmlUi/Core/Elements/ElementProgress.h"
- "${PROJECT_SOURCE_DIR}/Include/RmlUi/Core/Elements/ElementTabSet.h"
- "${PROJECT_SOURCE_DIR}/Include/RmlUi/Core/ElementText.h"
- "${PROJECT_SOURCE_DIR}/Include/RmlUi/Core/ElementUtilities.h"
- "${PROJECT_SOURCE_DIR}/Include/RmlUi/Core/Event.h"
- "${PROJECT_SOURCE_DIR}/Include/RmlUi/Core/EventInstancer.h"
- "${PROJECT_SOURCE_DIR}/Include/RmlUi/Core/EventListener.h"
- "${PROJECT_SOURCE_DIR}/Include/RmlUi/Core/EventListenerInstancer.h"
- "${PROJECT_SOURCE_DIR}/Include/RmlUi/Core/Factory.h"
- "${PROJECT_SOURCE_DIR}/Include/RmlUi/Core/FileInterface.h"
- "${PROJECT_SOURCE_DIR}/Include/RmlUi/Core/Filter.h"
- "${PROJECT_SOURCE_DIR}/Include/RmlUi/Core/FontEffect.h"
- "${PROJECT_SOURCE_DIR}/Include/RmlUi/Core/FontEffectInstancer.h"
- "${PROJECT_SOURCE_DIR}/Include/RmlUi/Core/FontEngineInterface.h"
- "${PROJECT_SOURCE_DIR}/Include/RmlUi/Core/FontGlyph.h"
- "${PROJECT_SOURCE_DIR}/Include/RmlUi/Core/FontMetrics.h"
- "${PROJECT_SOURCE_DIR}/Include/RmlUi/Core/Geometry.h"
- "${PROJECT_SOURCE_DIR}/Include/RmlUi/Core/Header.h"
- "${PROJECT_SOURCE_DIR}/Include/RmlUi/Core/ID.h"
- "${PROJECT_SOURCE_DIR}/Include/RmlUi/Core/Input.h"
- "${PROJECT_SOURCE_DIR}/Include/RmlUi/Core/Log.h"
- "${PROJECT_SOURCE_DIR}/Include/RmlUi/Core/Math.h"
- "${PROJECT_SOURCE_DIR}/Include/RmlUi/Core/Matrix4.h"
- "${PROJECT_SOURCE_DIR}/Include/RmlUi/Core/Matrix4.inl"
- "${PROJECT_SOURCE_DIR}/Include/RmlUi/Core/Mesh.h"
- "${PROJECT_SOURCE_DIR}/Include/RmlUi/Core/MeshUtilities.h"
- "${PROJECT_SOURCE_DIR}/Include/RmlUi/Core/NumericValue.h"
- "${PROJECT_SOURCE_DIR}/Include/RmlUi/Core/ObserverPtr.h"
- "${PROJECT_SOURCE_DIR}/Include/RmlUi/Core/Platform.h"
- "${PROJECT_SOURCE_DIR}/Include/RmlUi/Core/Plugin.h"
- "${PROJECT_SOURCE_DIR}/Include/RmlUi/Core/Profiling.h"
- "${PROJECT_SOURCE_DIR}/Include/RmlUi/Core/PropertiesIteratorView.h"
- "${PROJECT_SOURCE_DIR}/Include/RmlUi/Core/Property.h"
- "${PROJECT_SOURCE_DIR}/Include/RmlUi/Core/PropertyDefinition.h"
- "${PROJECT_SOURCE_DIR}/Include/RmlUi/Core/PropertyDictionary.h"
- "${PROJECT_SOURCE_DIR}/Include/RmlUi/Core/PropertyIdSet.h"
- "${PROJECT_SOURCE_DIR}/Include/RmlUi/Core/PropertyParser.h"
- "${PROJECT_SOURCE_DIR}/Include/RmlUi/Core/PropertySpecification.h"
- "${PROJECT_SOURCE_DIR}/Include/RmlUi/Core/Rectangle.h"
- "${PROJECT_SOURCE_DIR}/Include/RmlUi/Core/RenderBox.h"
- "${PROJECT_SOURCE_DIR}/Include/RmlUi/Core/RenderInterface.h"
- "${PROJECT_SOURCE_DIR}/Include/RmlUi/Core/RenderInterfaceCompatibility.h"
- "${PROJECT_SOURCE_DIR}/Include/RmlUi/Core/RenderManager.h"
- "${PROJECT_SOURCE_DIR}/Include/RmlUi/Core/ScriptInterface.h"
- "${PROJECT_SOURCE_DIR}/Include/RmlUi/Core/ScrollTypes.h"
- "${PROJECT_SOURCE_DIR}/Include/RmlUi/Core/Span.h"
- "${PROJECT_SOURCE_DIR}/Include/RmlUi/Core/Spritesheet.h"
- "${PROJECT_SOURCE_DIR}/Include/RmlUi/Core/StableVector.h"
- "${PROJECT_SOURCE_DIR}/Include/RmlUi/Core/Stream.h"
- "${PROJECT_SOURCE_DIR}/Include/RmlUi/Core/StreamMemory.h"
- "${PROJECT_SOURCE_DIR}/Include/RmlUi/Core/StringUtilities.h"
- "${PROJECT_SOURCE_DIR}/Include/RmlUi/Core/StyleSheet.h"
- "${PROJECT_SOURCE_DIR}/Include/RmlUi/Core/StyleSheetContainer.h"
- "${PROJECT_SOURCE_DIR}/Include/RmlUi/Core/StyleSheetSpecification.h"
- "${PROJECT_SOURCE_DIR}/Include/RmlUi/Core/StyleSheetTypes.h"
- "${PROJECT_SOURCE_DIR}/Include/RmlUi/Core/StyleTypes.h"
- "${PROJECT_SOURCE_DIR}/Include/RmlUi/Core/SystemInterface.h"
- "${PROJECT_SOURCE_DIR}/Include/RmlUi/Core/TextInputContext.h"
- "${PROJECT_SOURCE_DIR}/Include/RmlUi/Core/TextInputHandler.h"
- "${PROJECT_SOURCE_DIR}/Include/RmlUi/Core/TextShapingContext.h"
- "${PROJECT_SOURCE_DIR}/Include/RmlUi/Core/Texture.h"
- "${PROJECT_SOURCE_DIR}/Include/RmlUi/Core/Traits.h"
- "${PROJECT_SOURCE_DIR}/Include/RmlUi/Core/Transform.h"
- "${PROJECT_SOURCE_DIR}/Include/RmlUi/Core/TransformPrimitive.h"
- "${PROJECT_SOURCE_DIR}/Include/RmlUi/Core/Tween.h"
- "${PROJECT_SOURCE_DIR}/Include/RmlUi/Core/TypeConverter.h"
- "${PROJECT_SOURCE_DIR}/Include/RmlUi/Core/TypeConverter.inl"
- "${PROJECT_SOURCE_DIR}/Include/RmlUi/Core/Types.h"
- "${PROJECT_SOURCE_DIR}/Include/RmlUi/Core/UniqueRenderResource.h"
- "${PROJECT_SOURCE_DIR}/Include/RmlUi/Core/Unit.h"
- "${PROJECT_SOURCE_DIR}/Include/RmlUi/Core/URL.h"
- "${PROJECT_SOURCE_DIR}/Include/RmlUi/Core/Utilities.h"
- "${PROJECT_SOURCE_DIR}/Include/RmlUi/Core/Variant.h"
- "${PROJECT_SOURCE_DIR}/Include/RmlUi/Core/Variant.inl"
- "${PROJECT_SOURCE_DIR}/Include/RmlUi/Core/Vector2.h"
- "${PROJECT_SOURCE_DIR}/Include/RmlUi/Core/Vector2.inl"
- "${PROJECT_SOURCE_DIR}/Include/RmlUi/Core/Vector3.h"
- "${PROJECT_SOURCE_DIR}/Include/RmlUi/Core/Vector3.inl"
- "${PROJECT_SOURCE_DIR}/Include/RmlUi/Core/Vector4.h"
- "${PROJECT_SOURCE_DIR}/Include/RmlUi/Core/Vector4.inl"
- "${PROJECT_SOURCE_DIR}/Include/RmlUi/Core/Vertex.h"
- "${PROJECT_SOURCE_DIR}/Include/RmlUi/Core/XMLNodeHandler.h"
- "${PROJECT_SOURCE_DIR}/Include/RmlUi/Core/XMLParser.h"
- )
- set_common_target_options(rmlui_core)
- target_include_directories(rmlui_core PRIVATE "${PROJECT_SOURCE_DIR}/Include")
- target_include_directories(rmlui_core INTERFACE
- "$<BUILD_INTERFACE:${PROJECT_SOURCE_DIR}/Include>"
- "$<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}>"
- )
- add_library(RmlUi::Core ALIAS rmlui_core)
- set_target_properties(rmlui_core PROPERTIES
- # Add export name so that it can be exported with a namespaced name instead
- # of using the name we actually used to declare the target
- EXPORT_NAME "Core"
- # Change output name of the final library file
- OUTPUT_NAME "rmlui"
- )
- generate_rmlui_version_string()
- target_compile_definitions(rmlui_core PRIVATE "RMLUI_VERSION=\"${RMLUI_VERSION_SHORT}\"")
- add_subdirectory("Elements")
- add_subdirectory("Layout")
- # Set up definitions to export functions and classes as appropriate
- get_target_property(rmlui_core_TYPE rmlui_core "TYPE")
- if(rmlui_core_TYPE STREQUAL "STATIC_LIBRARY")
- # If RmlUi is being compiled as a static library, notify code to disable usage of __dllspec()
- # Since public headers also detect it, it needs to be a public definition
- target_compile_definitions(rmlui_core PUBLIC "RMLUI_STATIC_LIB")
- elseif(rmlui_core_TYPE STREQUAL "SHARED_LIBRARY")
- # If RmlUi is being compiled as a shared library, notify code to export functions using __dllspec()
- # For applications consuming the library, the headers will automatically use dllimport
- # Platform and compiler handling is already done by code via pre-processor macros
- target_compile_definitions(rmlui_core PRIVATE "RMLUI_CORE_EXPORTS")
- endif()
- unset(rmlui_core_TYPE)
- if(RMLUI_FONT_ENGINE STREQUAL "freetype")
- # Include the source files for the default font engine.
- add_subdirectory("FontEngineDefault")
- # RMLUI_CMAKE_MINIMUM_VERSION_RAISE_NOTICE:
- # From CMake 3.13 the next line can be moved into `FontEngineDefault/CMakeLists.txt`, see CMP0079.
- target_link_libraries(rmlui_core PRIVATE Freetype::Freetype)
- endif()
- if(RMLUI_LOTTIE_PLUGIN)
- # RMLUI_CMAKE_MINIMUM_VERSION_RAISE_NOTICE:
- # From CMake 3.13 we could move this to `Lottie/CMakeLists.txt`, see CMP0079.
- target_link_libraries(rmlui_core PRIVATE rlottie::rlottie)
- endif()
- if(RMLUI_SVG_PLUGIN)
- # RMLUI_CMAKE_MINIMUM_VERSION_RAISE_NOTICE:
- # From CMake 3.13 we could move this to `Lottie/CMakeLists.txt`, see CMP0079.
- target_link_libraries(rmlui_core PRIVATE lunasvg::lunasvg)
- endif()
- if(RMLUI_TRACY_PROFILING)
- if(CMAKE_CONFIGURATION_TYPES AND RMLUI_TRACY_CONFIGURATION)
- target_link_libraries(rmlui_core PUBLIC "$<$<CONFIG:Tracy>:Tracy::TracyClient>")
- target_compile_definitions(rmlui_core PUBLIC "$<$<CONFIG:Tracy>:RMLUI_TRACY_PROFILING>")
- if(RMLUI_TRACY_MEMORY_PROFILING)
- target_compile_definitions(rmlui_core PRIVATE "$<$<CONFIG:Tracy>:RMLUI_TRACY_MEMORY_PROFILING>")
- endif()
- message(STATUS "Tracy profiling enabled in configuration `Tracy`.")
- else()
- target_link_libraries(rmlui_core PUBLIC Tracy::TracyClient)
- target_compile_definitions(rmlui_core PUBLIC "RMLUI_TRACY_PROFILING")
- if(RMLUI_TRACY_MEMORY_PROFILING)
- target_compile_definitions(rmlui_core PRIVATE "RMLUI_TRACY_MEMORY_PROFILING")
- endif()
- message(STATUS "Tracy profiling enabled.")
- endif()
- endif()
- if(NOT RMLUI_THIRDPARTY_CONTAINERS)
- target_compile_definitions(rmlui_core PUBLIC "RMLUI_NO_THIRDPARTY_CONTAINERS")
- message(STATUS "Disabling third-party containers for RmlUi.")
- endif()
- if(RMLUI_CUSTOM_RTTI)
- target_compile_definitions(rmlui_core PUBLIC "RMLUI_CUSTOM_RTTI")
- message(STATUS "Enabling custom RTTI for RmlUi.")
- endif()
- if(RMLUI_MATRIX_ROW_MAJOR)
- target_compile_definitions(rmlui_core PUBLIC "RMLUI_MATRIX_ROW_MAJOR")
- message(STATUS "Configuring RmlUi to use row-major matrix types.")
- endif()
- # RMLUI_CMAKE_MINIMUM_VERSION_RAISE_NOTICE:
- # From CMake 3.16 we can skip the version check.
- if(RMLUI_PRECOMPILED_HEADERS AND CMAKE_VERSION VERSION_GREATER_EQUAL "3.16")
- target_precompile_headers(rmlui_core PRIVATE "${PROJECT_SOURCE_DIR}/Source/Core/precompiled.h")
- elseif(RMLUI_PRECOMPILED_HEADERS)
- message(STATUS "Could not enable precompiled headers, requires CMake version 3.16 or greater.")
- endif()
- if(RMLUI_CUSTOM_CONFIGURATION AND RMLUI_CUSTOM_CONFIGURATION_FILE)
- target_compile_definitions(rmlui_core PUBLIC "RMLUI_CUSTOM_CONFIGURATION_FILE=\"${RMLUI_CUSTOM_CONFIGURATION_FILE}\"")
- message(STATUS "Including ${RMLUI_CUSTOM_CONFIGURATION_FILE} instead of <RmlUi/Config/Config.h>")
- endif()
- if(RMLUI_CUSTOM_CONFIGURATION AND RMLUI_CUSTOM_INCLUDE_DIRS)
- target_include_directories(rmlui_core PUBLIC ${RMLUI_CUSTOM_INCLUDE_DIRS})
- endif()
- if(RMLUI_CUSTOM_CONFIGURATION AND RMLUI_CUSTOM_LINK_LIBRARIES)
- target_link_libraries(rmlui_core PUBLIC ${RMLUI_CUSTOM_LINK_LIBRARIES})
- endif()
- # RMLUI_CMAKE_MINIMUM_VERSION_RAISE_NOTICE:
- # We use default paths provided from GNUInstallDirs. From CMake 3.14 these paths (CMAKE_INSTALL_...) will be used
- # automatically and can be removed from the following call. The same applies to many other calls to install(TARGETS...).
- # Note that GNUInstallDirs should still be included in the project root.
- install(TARGETS rmlui_core
- EXPORT RmlUiTargets
- ${RMLUI_RUNTIME_DEPENDENCY_SET_ARG}
- RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
- LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
- ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
- )
- install_target_pdb(rmlui_core)
|