mirror of
https://gitea.wildfiregames.com/0ad/0ad
synced 2026-06-16 05:13:58 -07:00
Name the project AtlasMisc as the atlas Object is shared. Not working as of 04.06.2026: - Linking to wxWidgets find_package target - Terrain.obj : `error LNK2019: Verweis auf nicht aufgel├Âstes externes Symbol ""int const wxEVT_NULL" (?wxEVT_NULL@@3HB)" in Funktion ""void __cdecl dynamic initializer for 'private: static struct wxEventTableEntry const * const TerrainSidebar::sm_eventTableEntries''(void)" (??__E?sm_eventTableEntries@TerrainSidebar@@0QBUwxEventTableEntry@@B@@YAXXZ)".` Working: - Using find_package extra variables to find most of the windows ext. libs - excluding SDL2 and Boost, which use the custom find_prebuild_library function
54 lines
1.9 KiB
CMake
54 lines
1.9 KiB
CMake
function(find_prebuild_library _name)
|
|
include(FindPackageHandleStandardArgs)
|
|
set(multi_args COMPONENTS PATHS)
|
|
set(single_args INC_PATH VERSION)
|
|
cmake_parse_arguments(args "${multi_args}" "${single_args}" "" ${ARGN})
|
|
|
|
string(TOLOWER ${_name} libname)
|
|
string(TOUPPER ${_name} target_name)
|
|
# ++++++++ Handle COMPONENTS +++++++++++++++++++++
|
|
if(args_COMPONENTS)
|
|
|
|
endif()
|
|
|
|
# ++++++++ Find relevant elements ++++++++++++++++
|
|
find_library(Lib${_name} NAMES ${libname} ${libname}${args_VERSION})
|
|
if(NOT args_INC_PATH)
|
|
find_path(Lib${_name}_inc NAMES ${libname}.h PATHS ${0AD_EXT_LIBDIR}/${_name}/include/)
|
|
# recursive add all paths beneth included...
|
|
else()
|
|
set(Lib${_name}_inc ${args_INC_PATH})
|
|
endif()
|
|
if(NOT Lib${_name}_inc)
|
|
set(Lib${_name}_inc ${0AD_EXT_LIBDIR}/${_name}/include/)
|
|
endif()
|
|
|
|
find_package_handle_standard_args(Lib${_name} REQUIRED_VARS Lib${_name})
|
|
message(STATUS "${Lib${_name}} - ${Lib${_name}_inc} - ${Lib${_name}_FOUND} - ${target_name}::${target_name}")
|
|
|
|
if (Lib${_name}_FOUND)
|
|
mark_as_advanced(
|
|
Lib${_name}
|
|
Lib${_name}_inc
|
|
)
|
|
endif()
|
|
if(Lib${_name} MATCHES "LibBoost")
|
|
add_library(${target_name}::headers INTERFACE IMPORTED)
|
|
set_target_properties(${target_name}::headers PROPERTIES
|
|
IMPORTED_LOCATION ${Lib${_name}_inc}
|
|
INTERFACE_INCLUDE_DIRECTORIES ${Lib${_name}_inc}
|
|
)
|
|
elseif(Lib${_name} MATCHES "SDL2")
|
|
add_library(${target_name}::${target_name} UNKNOWN IMPORTED)
|
|
set_target_properties(${target_name}::${target_name} PROPERTIES
|
|
IMPORTED_LOCATION ${Lib${_name}}
|
|
INTERFACE_INCLUDE_DIRECTORIES ${Lib${_name}_inc}/SDL
|
|
)
|
|
elseif (Lib${_name} AND NOT TARGET ${target_name}::${target_name})
|
|
add_library(${target_name}::${target_name} UNKNOWN IMPORTED)
|
|
set_target_properties(${target_name}::${target_name} PROPERTIES
|
|
IMPORTED_LOCATION ${Lib${_name}}
|
|
INTERFACE_INCLUDE_DIRECTORIES ${Lib${_name}_inc}
|
|
)
|
|
endif()
|
|
endfunction()
|