Files
Qlyra/third_party/rlottie_build/CMakeLists.txt
T

77 lines
2.1 KiB
CMake

cmake_minimum_required( VERSION 3.10 )
project( rlottie VERSION 0.2 LANGUAGES C CXX ASM )
set(RLOTTIE "${CMAKE_CURRENT_LIST_DIR}/../rlottie")
if (NOT EXISTS "${RLOTTIE}/src/CMakeLists.txt")
message(FATAL_ERROR
"rlottie submodule is missing. Run: git submodule update --init --recursive")
endif()
if (NOT CMAKE_BUILD_TYPE)
set(CMAKE_BUILD_TYPE Release)
endif()
if (NOT DEFINED BUILD_SHARED_LIBS)
set(BUILD_SHARED_LIBS ON)
endif()
add_library( rlottie )
set_target_properties( rlottie PROPERTIES DEFINE_SYMBOL RLOTTIE_BUILD )
set(LOTTIE_MODULE OFF)
set(LOTTIE_THREAD ON)
set(LOTTIE_CACHE ON)
set(LOTTIE_MODULE_PATH "")
configure_file(${RLOTTIE}/cmake/config.h.in config.h)
target_include_directories(rlottie
PUBLIC $<BUILD_INTERFACE:${RLOTTIE}/inc>
PRIVATE "${CMAKE_CURRENT_BINARY_DIR}"
)
if(MSVC)
target_compile_options(rlottie
PRIVATE
/std:c++14
/EHs-c-
/GR-
/W3
)
else()
target_compile_options(rlottie
PRIVATE
-std=c++14
-fno-exceptions
-fno-unwind-tables
-fno-asynchronous-unwind-tables
-fno-rtti
-Wall
-fvisibility=hidden
-Wnon-virtual-dtor
-Woverloaded-virtual
-Wno-unused-parameter
)
endif()
if (WIN32 AND NOT BUILD_SHARED_LIBS)
target_compile_definitions(rlottie PUBLIC -DRLOTTIE_BUILD=0)
endif()
set( CMAKE_THREAD_PREFER_PTHREAD TRUE )
find_package( Threads )
if(WIN32)
set( OSSPEC_LIBS Shlwapi.lib )
endif()
target_link_libraries(rlottie
PUBLIC
"${CMAKE_THREAD_LIBS_INIT}"
${OSSPEC_LIBS}
)
add_subdirectory(${RLOTTIE}/src "${CMAKE_CURRENT_BINARY_DIR}/rlottie_src")