cmake: update FindFX module

This commit is contained in:
2026-05-31 17:32:44 +01:00
parent da2777717c
commit 4a087d1000
+18 -10
View File
@@ -51,15 +51,7 @@ endif ()
set(assemblies ${FX_FIND_COMPONENTS}) set(assemblies ${FX_FIND_COMPONENTS})
set(required_vars) set(required_vars)
set(in_tree FALSE)
if (NOT FX_INCLUDE_DIR)
find_path(FX_INCLUDE_DIR
NAMES fx/misc.h ${FX_FIND_ARGS}
PATH_SUFFIXES include
PATHS ${FX_SEARCH_PATHS})
endif ()
set(required_vars FX_INCLUDE_DIR)
foreach (assembly ${assemblies}) foreach (assembly ${assemblies})
string(TOLOWER ${assembly} header_name) string(TOLOWER ${assembly} header_name)
@@ -69,10 +61,15 @@ foreach (assembly ${assemblies})
set(lib_name ${assembly}${_lib_suffix}) set(lib_name ${assembly}${_lib_suffix})
if (NOT ${macro_name}_LIBRARY) if (NOT ${macro_name}_LIBRARY)
if (TARGET ${assembly})
set (${macro_name}_LIBRARY ${assembly})
set(in_tree TRUE)
else ()
find_library(${macro_name}_LIBRARY find_library(${macro_name}_LIBRARY
NAMES ${lib_name} ${FX_FIND_ARGS} NAMES ${lib_name} ${FX_FIND_ARGS}
PATH_SUFFIXES lib PATH_SUFFIXES lib
PATHS ${FX_SEARCH_PATHS}) PATHS ${FX_SEARCH_PATHS})
endif ()
else () else ()
# on Windows, ensure paths are in canonical format (forward slahes): # on Windows, ensure paths are in canonical format (forward slahes):
file(TO_CMAKE_PATH "${${macro_name}_LIBRARY}" ${macro_name}_LIBRARY) file(TO_CMAKE_PATH "${${macro_name}_LIBRARY}" ${macro_name}_LIBRARY)
@@ -81,6 +78,14 @@ foreach (assembly ${assemblies})
list(APPEND required_vars ${macro_name}_LIBRARY) list(APPEND required_vars ${macro_name}_LIBRARY)
endforeach (assembly) endforeach (assembly)
if (NOT FX_INCLUDE_DIR AND NOT in_tree)
list(APPEND required_vars FX_INCLUDE_DIR)
find_path(FX_INCLUDE_DIR
NAMES fx/misc.h ${FX_FIND_ARGS}
PATH_SUFFIXES include
PATHS ${FX_SEARCH_PATHS})
endif ()
unset(FX_FIND_ARGS) unset(FX_FIND_ARGS)
include(FindPackageHandleStandardArgs) include(FindPackageHandleStandardArgs)
@@ -106,6 +111,9 @@ if (FX_FOUND)
set(lib_name ${assembly}${_lib_suffix}) set(lib_name ${assembly}${_lib_suffix})
if (NOT TARGET FX::${target_name}) if (NOT TARGET FX::${target_name})
if (TARGET ${assembly})
add_library(FX::${target_name} ALIAS ${assembly})
else ()
add_library(FX::${target_name} UNKNOWN IMPORTED) add_library(FX::${target_name} UNKNOWN IMPORTED)
set_target_properties(FX::${target_name} PROPERTIES set_target_properties(FX::${target_name} PROPERTIES
INTERFACE_INCLUDE_DIRECTORIES "${FX_INCLUDE_DIR}") INTERFACE_INCLUDE_DIRECTORIES "${FX_INCLUDE_DIR}")
@@ -114,10 +122,10 @@ if (FX_FOUND)
if (FX_STATIC) if (FX_STATIC)
target_compile_definitions(FX::${target_name} INTERFACE FX_STATIC=1) target_compile_definitions(FX::${target_name} INTERFACE FX_STATIC=1)
endif () endif ()
set_target_properties(FX::${target_name} PROPERTIES set_target_properties(FX::${target_name} PROPERTIES
IMPORTED_LINK_INTERFACE_LANGUAGES "C" IMPORTED_LINK_INTERFACE_LANGUAGES "C"
IMPORTED_LOCATION "${${macro_name}_LIBRARY}") IMPORTED_LOCATION "${${macro_name}_LIBRARY}")
endif ()
set(created_targets ${created_targets} ${assembly}) set(created_targets ${created_targets} ${assembly})
endif () endif ()
endforeach (assembly) endforeach (assembly)