Files
yacreader/cmake/BackendHelpers.cmake
2026-03-29 23:15:24 +02:00

49 lines
1.5 KiB
CMake

include_guard(GLOBAL)
function(yacreader_get_windows_arch_subdir out_var)
if(CMAKE_SYSTEM_PROCESSOR STREQUAL "ARM64" OR CMAKE_CXX_COMPILER_ARCHITECTURE_ID STREQUAL "ARM64")
set(_arch "arm64")
elseif(CMAKE_SIZEOF_VOID_P EQUAL 4)
set(_arch "x86")
else()
set(_arch "x64")
endif()
set(${out_var} "${_arch}" PARENT_SCOPE)
endfunction()
function(yacreader_add_imported_library target_name)
set(options)
set(oneValueArgs TYPE LOCATION IMPORTED_IMPLIB INCLUDE_DIR)
set(multiValueArgs LINK_LIBRARIES COMPILE_DEFINITIONS)
cmake_parse_arguments(YR "${options}" "${oneValueArgs}" "${multiValueArgs}" ${ARGN})
if(NOT YR_TYPE)
set(YR_TYPE UNKNOWN)
endif()
if(NOT TARGET "${target_name}")
add_library("${target_name}" ${YR_TYPE} IMPORTED GLOBAL)
endif()
if(YR_LOCATION)
set_property(TARGET "${target_name}" PROPERTY IMPORTED_LOCATION "${YR_LOCATION}")
endif()
if(YR_IMPORTED_IMPLIB)
set_property(TARGET "${target_name}" PROPERTY IMPORTED_IMPLIB "${YR_IMPORTED_IMPLIB}")
endif()
if(YR_INCLUDE_DIR)
set_property(TARGET "${target_name}" PROPERTY INTERFACE_INCLUDE_DIRECTORIES "${YR_INCLUDE_DIR}")
endif()
if(YR_LINK_LIBRARIES)
set_property(TARGET "${target_name}" PROPERTY INTERFACE_LINK_LIBRARIES "${YR_LINK_LIBRARIES}")
endif()
if(YR_COMPILE_DEFINITIONS)
set_property(TARGET "${target_name}" PROPERTY INTERFACE_COMPILE_DEFINITIONS "${YR_COMPILE_DEFINITIONS}")
endif()
endfunction()