File cmake-flags-upstream-issue-474.patch of Package yubico-piv-tool

commit a3b81d574ac20a1f17eea245da6096f59416b8f7
Author: Wolfgang Frisch <wolfgang.frisch@suse.com>
Date:   Thu Feb 15 10:23:03 2024 +0100

    cmake: fix semicolons in CFLAGS of custom modules
    
    Both `openssl.cmake` and `pcscd.cmake` use FindPkgConfig to retrieve the
    required CFLAGS and LDFLAGS. However FindPkgConfig returns lists [1],
    which are stored as semicolon-separated strings in CMake.  This breaks
    the build when there's more than one flag in any of those variables.
    
    Fixes https://github.com/Yubico/yubico-piv-tool/issues/474

diff --git a/CMakeLists.txt b/CMakeLists.txt
index ae6654e..1bc068a 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -25,7 +25,7 @@
 # (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
 # OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 
-cmake_minimum_required (VERSION 3.5)
+cmake_minimum_required (VERSION 3.12)
 # policy CMP0025 is to get AppleClang identifier rather than Clang for both
 # this matters since the apple compiler accepts different flags.
 cmake_policy(SET CMP0025 NEW)
diff --git a/cmake/openssl.cmake b/cmake/openssl.cmake
index e650d81..ec29ee3 100644
--- a/cmake/openssl.cmake
+++ b/cmake/openssl.cmake
@@ -84,8 +84,9 @@ macro (find_libcrypto)
     endif(WIN32 OR OPENSSL_STATIC_LINK)
     
     message("        OpenSSL version:   ${OPENSSL_VERSION}")
-    set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${LIBCRYPTO_CFLAGS}")
-    set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${LIBCRYPTO_CFLAGS}")
+    list(JOIN LIBCRYPTO_CFLAGS " " LIBCRYPTO_CFLAGS_STRING)
+    set(CMAKE_C_FLAGS "${LIBCRYPTO_CFLAGS_STRING} ${CMAKE_C_FLAGS}")
+    set(CMAKE_CXX_FLAGS "${LIBCRYPTO_CFLAGS_STRING} ${CMAKE_CXX_FLAGS}")
     link_directories(${LIBCRYPTO_LIBRARY_DIRS})
     include_directories(${LIBCRYPTO_INCLUDE_DIRS})
 
diff --git a/cmake/pcscd.cmake b/cmake/pcscd.cmake
index 4222693..5fe0ad9 100644
--- a/cmake/pcscd.cmake
+++ b/cmake/pcscd.cmake
@@ -75,7 +75,7 @@ macro (find_pcscd)
         set(ENV{PKG_CONFIG_PATH} "${PCSCLITE_PKG_PATH}:$ENV{PKG_CONFIG_PATH}")
         pkg_check_modules(PCSC REQUIRED libpcsclite)
         if(PCSC_FOUND)
-            set(PCSC_LIBRARIES ${PCSC_LDFLAGS})
+            list(JOIN PCSC_LDFLAGS " " PCSC_LIBRARIES)
             if(VERBOSE_CMAKE)
                 message("PCSC_FOUND: ${PCSC_FOUND}")
                 message("PCSC_LIBRARY_DIRS: ${PCSC_LIBRARY_DIRS}")
@@ -100,8 +100,9 @@ macro (find_pcscd)
         else(${PCSC_DIR} NOT STREQUAL "")
             set(PCSC_CUSTOM_LIBS "-Wl,-l${PCSC_LIB}")
         endif(${PCSC_DIR} NOT STREQUAL "")
-        set(CMAKE_C_FLAGS ${PCSC_CFLAGS} ${CMAKE_C_FLAGS})
-        set(PCSC_LIBRARIES ${PCSC_LIBRARIES} ${PCSC_CUSTOM_LIBS})
+        list(JOIN PCSC_CFLAGS " " PCSC_CFLAGS_STRING)
+        set(CMAKE_C_FLAGS "${PCSC_CFLAGS_STRING} ${CMAKE_C_FLAGS}")
+        set(PCSC_LIBRARIES "${PCSC_LIBRARIES} ${PCSC_CUSTOM_LIBS}")
         unset(PCSC_MACOSX_LIBS)
         unset(PCSC_WIN_LIBS)
         unset(PCSC_LIBS)
openSUSE Build Service is sponsored by