cmake: use ALIAS instead of generator expressions, cosmetic changes (#1034)

This commit is contained in:
Roman Fomin 2023-05-05 08:42:12 +07:00 committed by GitHub
parent 8553ae2beb
commit 06cc022185
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
5 changed files with 44 additions and 43 deletions

View File

@ -67,6 +67,10 @@ find_package(SDL2_net REQUIRED)
find_package(OpenAL REQUIRED) find_package(OpenAL REQUIRED)
find_package(SndFile 1.0.29 REQUIRED) find_package(SndFile 1.0.29 REQUIRED)
if(NOT TARGET SDL2_net::SDL2_net)
add_library(SDL2_net::SDL2_net ALIAS SDL2_net::SDL2_net-static)
endif()
if(SndFile_VERSION VERSION_GREATER_EQUAL "1.1.0") if(SndFile_VERSION VERSION_GREATER_EQUAL "1.1.0")
set(HAVE_SNDFILE_MPEG TRUE) set(HAVE_SNDFILE_MPEG TRUE)
endif() endif()
@ -80,6 +84,13 @@ endif()
if(libxmp_FOUND) if(libxmp_FOUND)
set(HAVE_LIBXMP TRUE) set(HAVE_LIBXMP TRUE)
if(NOT TARGET libxmp::xmp)
if(TARGET libxmp::xmp_shared)
add_library(libxmp::xmp ALIAS libxmp::xmp_shared)
else()
add_library(libxmp::xmp ALIAS libxmp::xmp_static)
endif()
endif()
endif() endif()
# Python 3 # Python 3

View File

@ -37,34 +37,27 @@ The following cache variables may also be set:
#]=======================================================================] #]=======================================================================]
find_package(PkgConfig QUIET) find_package(PkgConfig QUIET)
pkg_check_modules(PC_FLUIDSYNTH QUIET fluidsynth) pkg_check_modules(PC_FluidSynth QUIET fluidsynth)
find_path( find_path(FluidSynth_INCLUDE_DIR
FluidSynth_INCLUDE_DIR
NAMES fluidsynth.h NAMES fluidsynth.h
HINTS "${PC_FLUIDSYNTH_INCLUDEDIR}" HINTS "${PC_FluidSynth_INCLUDEDIR}")
)
find_library( find_library(FluidSynth_LIBRARY
FluidSynth_LIBRARY
NAMES fluidsynth libfluidsynth NAMES fluidsynth libfluidsynth
HINTS "${PC_FLUIDSYNTH_LIBDIR}" HINTS "${PC_FluidSynth_LIBDIR}")
)
include(FindPackageHandleStandardArgs) include(FindPackageHandleStandardArgs)
find_package_handle_standard_args( find_package_handle_standard_args(FluidSynth
FluidSynth
REQUIRED_VARS "FluidSynth_LIBRARY" "FluidSynth_INCLUDE_DIR" REQUIRED_VARS "FluidSynth_LIBRARY" "FluidSynth_INCLUDE_DIR"
VERSION_VAR "FluidSynth_VERSION") VERSION_VAR "FluidSynth_VERSION")
if(FluidSynth_FOUND) if(FluidSynth_FOUND)
if(NOT TARGET FluidSynth::libfluidsynth) if(NOT TARGET FluidSynth::libfluidsynth)
add_library(FluidSynth::libfluidsynth UNKNOWN IMPORTED) add_library(FluidSynth::libfluidsynth UNKNOWN IMPORTED)
set_target_properties( set_target_properties(FluidSynth::libfluidsynth
FluidSynth::libfluidsynth
PROPERTIES IMPORTED_LOCATION "${FluidSynth_LIBRARY}" PROPERTIES IMPORTED_LOCATION "${FluidSynth_LIBRARY}"
INTERFACE_INCLUDE_DIRECTORIES "${FluidSynth_INCLUDE_DIR}" INTERFACE_INCLUDE_DIRECTORIES "${FluidSynth_INCLUDE_DIR}")
)
endif() endif()
endif() endif()

View File

@ -1,26 +1,17 @@
# Variables defined: # Variables defined:
# SNDFILE_FOUND # SndFile_FOUND
# SNDFILE_INCLUDE_DIR # SndFile_INCLUDE_DIR
# SNDFILE_LIBRARY # SndFile_LIBRARY
#
# Environment variables used:
# SNDFILE_DIR
find_package(PkgConfig QUIET) find_package(PkgConfig QUIET)
pkg_check_modules(PC_SndFile QUIET sndfile) pkg_check_modules(PC_SndFile QUIET sndfile)
find_path(SndFile_INCLUDE_DIR sndfile.h find_path(SndFile_INCLUDE_DIR sndfile.h
HINTS HINTS "${PC_SndFile_INCLUDEDIR}")
${PC_SndFile_INCLUDEDIR}
${PC_SndFile_INCLUDE_DIRS}
${SNDFILE_DIR})
find_library(SndFile_LIBRARY find_library(SndFile_LIBRARY
NAMES sndfile libsndfile NAMES sndfile libsndfile
HINTS HINTS "${PC_SndFile_LIBDIR}")
${PC_SndFile_LIBDIR}
${PC_SndFile_LIBRARY_DIRS}
${SNDFILE_DIR})
include(FindPackageHandleStandardArgs) include(FindPackageHandleStandardArgs)
find_package_handle_standard_args(SndFile find_package_handle_standard_args(SndFile

View File

@ -1,20 +1,30 @@
include(FindPackageHandleStandardArgs) # Variables defined:
# libxmp_FOUND
# libxmp_INCLUDE_DIR
# libxmp_LIBRARY
find_package(PkgConfig QUIET)
pkg_check_modules(PC_libxmp QUIET libxmp)
find_library(libxmp_LIBRARY find_library(libxmp_LIBRARY
NAMES xmp) NAMES xmp
HINTS "${PC_libxmp_LIBDIR}")
find_path(libxmp_INCLUDE_PATH find_path(libxmp_INCLUDE_DIR
NAMES xmp.h) NAMES xmp.h
HINTS "${PC_libxmp_INCLUDEDIR}")
include(FindPackageHandleStandardArgs)
find_package_handle_standard_args(libxmp find_package_handle_standard_args(libxmp
REQUIRED_VARS libxmp_LIBRARY libxmp_INCLUDE_PATH REQUIRED_VARS libxmp_LIBRARY libxmp_INCLUDE_DIR)
)
if(libxmp_FOUND) if(libxmp_FOUND)
if(NOT TARGET libxmp::xmp) if(NOT TARGET libxmp::xmp)
add_library(libxmp::xmp UNKNOWN IMPORTED) add_library(libxmp::xmp UNKNOWN IMPORTED)
set_target_properties(libxmp::xmp PROPERTIES set_target_properties(libxmp::xmp PROPERTIES
IMPORTED_LOCATION "${libxmp_LIBRARY}" IMPORTED_LOCATION "${libxmp_LIBRARY}"
INTERFACE_INCLUDE_DIRECTORIES "${libxmp_INCLUDE_PATH}") INTERFACE_INCLUDE_DIRECTORIES "${libxmp_INCLUDE_DIR}")
endif() endif()
endif() endif()
mark_as_advanced(libxmp_LIBRARY libxmp_INCLUDE_DIR)

View File

@ -144,10 +144,7 @@ endif()
if(libxmp_FOUND) if(libxmp_FOUND)
list(APPEND WOOF_SOURCES i_xmp.c) list(APPEND WOOF_SOURCES i_xmp.c)
list(APPEND WOOF_LIBRARIES list(APPEND WOOF_LIBRARIES libxmp::xmp)
$<IF:$<TARGET_EXISTS:libxmp::xmp>,libxmp::xmp,
$<IF:$<TARGET_EXISTS:libxmp::xmp_shared>,libxmp::xmp_shared,
libxmp::xmp_static>>)
endif() endif()
# Standard target definition # Standard target definition
@ -187,8 +184,7 @@ endif()
target_woof_settings(woof) target_woof_settings(woof)
target_include_directories(woof PRIVATE "${CMAKE_CURRENT_BINARY_DIR}/../") target_include_directories(woof PRIVATE "${CMAKE_CURRENT_BINARY_DIR}/../")
list(APPEND SDL2_LIBRARIES list(APPEND SDL2_LIBRARIES SDL2_net::SDL2_net)
$<IF:$<TARGET_EXISTS:SDL2_net::SDL2_net>,SDL2_net::SDL2_net,SDL2_net::SDL2_net-static>)
target_link_libraries(woof PRIVATE ${WOOF_LIBRARIES} target_link_libraries(woof PRIVATE ${WOOF_LIBRARIES}
${SDL2_LIBRARIES} ${SDL2_LIBRARIES}
@ -248,7 +244,7 @@ endif()
# Install # Install
# #
# Rename woof-com and woof-exe executables. # Rename woof-com and woof-exe executables.
if (WIN32) if(WIN32)
add_custom_command(TARGET woof-com POST_BUILD add_custom_command(TARGET woof-com POST_BUILD
COMMAND ${CMAKE_COMMAND} -E copy COMMAND ${CMAKE_COMMAND} -E copy
"$<TARGET_FILE_DIR:woof-com>/$<TARGET_FILE_NAME:woof-com>" "$<TARGET_FILE_DIR:woof-com>/$<TARGET_FILE_NAME:woof-com>"