cmake_minimum_required (VERSION 3.6) project(RenderScript CXX) set(INCLUDE include/BlendStateDescParser.h include/BufferParser.h include/BufferViewParser.h include/ClassMethodBinding.h include/ConvenienceFunctions.h include/Debug.h include/DepthStencilStateDescParser.h include/DeviceContextFuncBindings.h include/DrawAttribsParser.h include/EngineObjectParserBase.h include/EngineObjectParserCommon.h include/EnumMappings.h include/InputLayoutDescParser.h include/LuaBindings.h include/LuaFunctionBinding.h include/LuaWrappers.h include/ParsingErrors.h include/pch.h include/PSODescParser.h include/RasterizerStateDescParser.h include/ResourceMappingParser.h include/SamplerParser.h include/ScissorRectParser.h include/ScriptParser.h include/ShaderParser.h include/ShaderResourceBindingParser.h include/ShaderVariableParser.h include/TextureParser.h include/TextureViewParser.h include/ViewportParser.h ) set(SOURCE src/BlendStateDescParser.cpp src/BufferParser.cpp src/BufferViewParser.cpp src/DepthStencilStateDescParser.cpp src/DeviceContextFuncBindings.cpp src/DrawAttribsParser.cpp src/EngineObjectParserBase.cpp src/EnumMappings.cpp src/InputLayoutDescParser.cpp src/LuaBindings.cpp src/LuaFunctionBinding.cpp src/LuaWrappers.cpp src/ParsingErrors.cpp src/PSODescParser.cpp src/RasterizerStateDescParser.cpp src/ResourceMappingParser.cpp src/SamplerParser.cpp src/ScissorRectParser.cpp src/ScriptParser.cpp src/ShaderParser.cpp src/ShaderResourceBindingParser.cpp src/ShaderVariableParser.cpp src/TextureParser.cpp src/TextureViewParser.cpp src/ViewportParser.cpp ) add_library(RenderScript STATIC ${SOURCE} ${INCLUDE}) set_common_target_properties(RenderScript) target_include_directories(RenderScript PUBLIC include ) if (CMAKE_CXX_COMPILER_ID MATCHES "Clang" OR CMAKE_CXX_COMPILER_ID MATCHES "GNU") # Suppress warnings from applying the ‘offsetof’ macro to a non-POD type # warning: offset of on non-standard-layout type [-Winvalid-offsetof] # This is OK because the warning is generated for simple structs (such as TextureDesc) # that fail to be a POD type only by virtue of having a constructor and comparison operator target_compile_options(RenderScript PRIVATE -Wno-invalid-offsetof) endif() source_group("source" FILES ${SOURCE}) source_group("include" FILES ${INCLUDE}) target_link_libraries(RenderScript PUBLIC Lua PRIVATE BuildSettings GraphicsEngineInterface GraphicsAccessories Common PlatformInterface GraphicsTools ) set_target_properties(RenderScript PROPERTIES FOLDER Tools )