Warning, /games/kpat/cmake/FindFreecellSolver.cmake is written in an unsupported language. File is not indexed.
0001 # SPDX-FileCopyrightText: 2023 Friedrich W. H. Kossebau <kossebau@kde.org>
0002 #
0003 # SPDX-License-Identifier: BSD-2-Clause
0004
0005 #[=======================================================================[.rst:
0006 FindFreecellSolver
0007 ------------------
0008
0009 Try to find the Freecell Solver library.
0010
0011 This will define the following variables:
0012
0013 ``FreecellSolver_FOUND``
0014 TRUE if (the requested version of) Freecell Solver is available
0015 ``FreecellSolver_VERSION``
0016 The version of Freecell Solver
0017 ``FreecellSolver_LIBRARIES``
0018 The libraries of Freecell Solver for use with target_link_libraries()
0019 ``FreecellSolver_INCLUDE_DIRS``
0020 The include dirs of Freecell Solver for use with target_include_directories()
0021
0022 If ``FreecellSolver_FOUND`` is TRUE, it will also define the following imported
0023 target:
0024
0025 ``FreecellSolver::FreecellSolver``
0026 The FreecellSolver library
0027
0028 The target has a property ``FREECELLSOLVER_HAS_SOFT_SUSPEND`` which specifies
0029 if the library has the FCS_STATE_SOFT_SUSPEND_PROCESS state or not.
0030 #]=======================================================================]
0031
0032 find_package(PkgConfig QUIET)
0033 pkg_check_modules(PC_FreecellSolver libfreecell-solver QUIET)
0034
0035 find_library(FreecellSolver_LIBRARIES
0036 NAMES freecell-solver
0037 HINTS ${PC_FreecellSolver_LIBRARY_DIRS}
0038 )
0039
0040 find_path(FreecellSolver_INCLUDE_DIRS
0041 NAMES freecell-solver/fcs_user.h
0042 HINTS ${PC_FreecellSolver_INCLUDE_DIRS}
0043 )
0044
0045 set(FreecellSolver_VERSION ${PC_FreecellSolver_VERSION})
0046
0047 include(FindPackageHandleStandardArgs)
0048 find_package_handle_standard_args(FreecellSolver
0049 REQUIRED_VARS
0050 FreecellSolver_LIBRARIES
0051 FreecellSolver_INCLUDE_DIRS
0052 VERSION_VAR
0053 FreecellSolver_VERSION
0054 )
0055
0056 set(fcs_has_soft_suspend FALSE)
0057 if(FreecellSolver_FOUND)
0058 try_compile(fcs_has_soft_suspend "${CMAKE_CURRENT_BINARY_DIR}"
0059 SOURCES "${CMAKE_CURRENT_LIST_DIR}/fcs_soft_suspend_test.c"
0060 CMAKE_FLAGS "-DINCLUDE_DIRECTORIES:STRING=${FreecellSolver_INCLUDE_DIRS}"
0061 LINK_LIBRARIES ${FreecellSolver_LIBRARIES})
0062 endif()
0063
0064 if(FreecellSolver_FOUND AND NOT TARGET FreecellSolver::FreecellSolver)
0065 add_library(FreecellSolver::FreecellSolver UNKNOWN IMPORTED)
0066 set_target_properties(FreecellSolver::FreecellSolver PROPERTIES
0067 IMPORTED_LOCATION "${FreecellSolver_LIBRARIES}"
0068 INTERFACE_COMPILE_OPTIONS "${PC_FreecellSolver_CFLAGS}"
0069 INTERFACE_INCLUDE_DIRECTORIES "${FreecellSolver_INCLUDE_DIRS}"
0070 FREECELLSOLVER_HAS_SOFT_SUSPEND "${fcs_has_soft_suspend}"
0071 )
0072 endif()
0073
0074 mark_as_advanced(FreecellSolver_LIBRARIES FreecellSolver_INCLUDE_DIRS FreecellSolver_VERSION)
0075
0076 include(FeatureSummary)
0077 set_package_properties(FreecellSolver PROPERTIES
0078 DESCRIPTION "Library for Solving Freecell and Similar Solitaire Games."
0079 URL "https://fc-solve.shlomifish.org/"
0080 )