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 )