Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package p8-platform for openSUSE:Factory 
checked in at 2026-07-17 18:49:13
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/p8-platform (Old)
 and      /work/SRC/openSUSE:Factory/.p8-platform.new.24530 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "p8-platform"

Fri Jul 17 18:49:13 2026 rev:6 rq:1366323 version:2.2.0

Changes:
--------
--- /work/SRC/openSUSE:Factory/p8-platform/p8-platform.changes  2026-06-02 
16:02:51.771305893 +0200
+++ /work/SRC/openSUSE:Factory/.p8-platform.new.24530/p8-platform.changes       
2026-07-17 18:50:26.675211878 +0200
@@ -1,0 +2,5 @@
+Fri Jul 17 06:58:45 UTC 2026 - Martin Pluskal <[email protected]>
+
+- Update to 2.2.0 (first upstream release since 2015; SOVERSION unchanged at 2)
+
+-------------------------------------------------------------------

Old:
----
  p8-platform-2.1.0.1.tar.gz

New:
----
  p8-platform-2.2.0.tar.gz

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ p8-platform.spec ++++++
--- /var/tmp/diff_new_pack.RR94vn/_old  2026-07-17 18:50:27.343234481 +0200
+++ /var/tmp/diff_new_pack.RR94vn/_new  2026-07-17 18:50:27.347234616 +0200
@@ -18,7 +18,7 @@
 
 %define _SO_nr  2
 Name:           p8-platform
-Version:        2.1.0.1
+Version:        2.2.0
 Release:        0
 Summary:        Platform support library used by libCEC and binary add-ons for 
Kodi
 License:        GPL-2.0-or-later

++++++ p8-platform-2.1.0.1.tar.gz -> p8-platform-2.2.0.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/platform-p8-platform-2.1.0.1/.gitignore 
new/platform-p8-platform-2.2.0/.gitignore
--- old/platform-p8-platform-2.1.0.1/.gitignore 1970-01-01 01:00:00.000000000 
+0100
+++ new/platform-p8-platform-2.2.0/.gitignore   2026-07-16 22:15:43.000000000 
+0200
@@ -0,0 +1 @@
+/build
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/platform-p8-platform-2.1.0.1/.gitmodules 
new/platform-p8-platform-2.2.0/.gitmodules
--- old/platform-p8-platform-2.1.0.1/.gitmodules        2016-10-26 
12:51:27.000000000 +0200
+++ new/platform-p8-platform-2.2.0/.gitmodules  2026-07-16 22:15:43.000000000 
+0200
@@ -1,3 +1,3 @@
 [submodule "support"]
        path = support
-       url = [email protected]:Pulse-Eight/libcec-support.git
+       url = https://github.com/Pulse-Eight/libcec-support.git
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/platform-p8-platform-2.1.0.1/CMakeLists.txt 
new/platform-p8-platform-2.2.0/CMakeLists.txt
--- old/platform-p8-platform-2.1.0.1/CMakeLists.txt     2016-10-26 
12:51:27.000000000 +0200
+++ new/platform-p8-platform-2.2.0/CMakeLists.txt       2026-07-16 
22:15:43.000000000 +0200
@@ -1,18 +1,22 @@
+cmake_minimum_required(VERSION 3.12.0)
 project(p8-platform)
 
-cmake_minimum_required(VERSION 2.8.9)
 enable_language(CXX)
 
+set(CMAKE_CXX_STANDARD 11)
+set(CMAKE_CXX_STANDARD_REQUIRED YES)
+set(CMAKE_CXX_EXTENSIONS NO)
+
 set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${PROJECT_SOURCE_DIR})
 
 find_package(Threads REQUIRED)
-include(UseMultiArch.cmake)
+include(GNUInstallDirs)
 include(CheckAtomic.cmake)
 
 set(p8-platform_NAME p8-platform)
 set(p8-platform_DESCRIPTION "Pulse-Eight platform support library")
 set(p8-platform_VERSION_MAJOR 2)
-set(p8-platform_VERSION_MINOR 1)
+set(p8-platform_VERSION_MINOR 2)
 set(p8-platform_VERSION_PATCH 0)
 
 set(CMAKE_POSITION_INDEPENDENT_CODE on)
@@ -22,10 +26,6 @@
                    src/windows/os-threads.cpp)
 endif()
 
-set(p8-platform_INCLUDE_DIRS "${CMAKE_INSTALL_PREFIX}/include/p8-platform")
-IF(WIN32)
-  LIST(APPEND p8-platform_INCLUDE_DIRS 
"${CMAKE_INSTALL_PREFIX}/include/p8-platform/windows")
-ENDIF(WIN32)
 set(p8-platform_LIBRARIES ${CMAKE_THREAD_LIBS_INIT})
 
 if(NOT ${CORE_SYSTEM_NAME} STREQUAL "")
@@ -38,23 +38,54 @@
 
 add_library(p8-platform ${SOURCES} ${PLAT_SOURCES})
 target_link_libraries(p8-platform ${p8-platform_LIBRARIES})
-set_target_properties(p8-platform PROPERTIES VERSION 
${p8-platform_VERSION_MAJOR}.${p8-platform_VERSION_MINOR}.${p8-platform_VERSION_PATCH}
-                                              SOVERSION 
${p8-platform_VERSION_MAJOR})
+set_target_properties(p8-platform
+    PROPERTIES
+    VERSION 
${p8-platform_VERSION_MAJOR}.${p8-platform_VERSION_MINOR}.${p8-platform_VERSION_PATCH}
+    SOVERSION ${p8-platform_VERSION_MAJOR})
+
+if(WIN32)
+  include(CheckSymbolExists)
+  check_symbol_exists(_AMD64_ Windows.h WIN64)
+  check_symbol_exists(_ARM64_ Windows.h ARM64)
+
+  if (MSVC)
+    set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} 
/D_HAS_ITERATOR_DEBUGGING=1 /D_SECURE_SCL=1")
+    add_compile_definitions($<$<CONFIG:Debug>:_ITERATOR_DEBUG_LEVEL=2>)
+    add_compile_definitions($<$<CONFIG:Debug>:_HAS_ITERATOR_DEBUGGING=1>)
+    # generate pdb in release mode too
+    set_target_properties(p8-platform
+        PROPERTIES
+        COMPILE_PDB_NAME_DEBUG p8-platform${CMAKE_DEBUG_POSTFIX}
+        COMPILE_PDB_NAME_RELEASE p8-platform
+        COMPILE_PDB_NAME_MINSIZEREL p8-platform
+        COMPILE_PDB_NAME_RELWITHDEBINFO p8-platform)
+
+    if (WIN64 OR ARM64)
+      # default setting that got removed in recent vs versions, generates a 
warning if set
+      string(REPLACE "/arch:SSE2" "" CMAKE_CXX_FLAGS ${CMAKE_CXX_FLAGS})
+    endif()
+
+  endif(MSVC)
+
+  if (NOT WIN64 AND NOT ARM64)
+    add_definitions(-D_USE_32BIT_TIME_T)
+  endif()
+endif(WIN32)
 
 install(TARGETS p8-platform DESTINATION ${CMAKE_INSTALL_LIBDIR})
 install(FILES src/os.h DESTINATION include/p8-platform)
-IF(WIN32)
-  INSTALL(FILES src/windows/dlfcn-win32.h
+if(WIN32)
+  install(FILES src/windows/dlfcn-win32.h
                 src/windows/os-socket.h
                 src/windows/os-threads.h
                 src/windows/os-types.h
           DESTINATION include/p8-platform/windows)
-ELSE(WIN32)
+else(WIN32)
   install(FILES src/posix/os-socket.h
                 src/posix/os-threads.h
                 src/posix/os-types.h
           DESTINATION include/p8-platform/posix)
-ENDIF(WIN32)
+endif(WIN32)
 install(FILES src/sockets/cdevsocket.h
               src/sockets/socket.h
               src/sockets/tcp.h
@@ -71,15 +102,36 @@
               src/util/util.h
         DESTINATION include/p8-platform/util)
 
-IF(NOT WIN32)
+if(MSVC)
+  # install generated pdb
+  install(FILES $<TARGET_FILE_DIR:p8-platform>/p8-platform.pdb
+          DESTINATION "${CMAKE_INSTALL_LIBDIR}")
+endif(MSVC)
+
+if(NOT WIN32)
   configure_file(p8-platform.pc.in p8-platform.pc @ONLY)
-  install(FILES ${CMAKE_BINARY_DIR}/p8-platform.pc
+  install(FILES ${CMAKE_CURRENT_BINARY_DIR}/p8-platform.pc
           DESTINATION ${CMAKE_INSTALL_LIBDIR}/pkgconfig)
-ENDIF(NOT WIN32)
+endif(NOT WIN32)
 
 # config mode
+# how to walk back to the prefix from the installed config file. worked out 
here
+# because the depth varies with the libdir: lib, lib64, lib/x86_64-linux-gnu
+file (RELATIVE_PATH p8-platform_CONFIG_TO_PREFIX
+      "${CMAKE_INSTALL_FULL_LIBDIR}/p8-platform" "${CMAKE_INSTALL_PREFIX}")
+
+# export a static build as STATIC rather than UNKNOWN, because cmake only adds
+# the c++ runtime for an imported library that says it's static. a shared build
+# stays UNKNOWN: it doesn't need the runtime spelled out, and SHARED would want
+# an IMPORTED_IMPLIB next to the dll on windows
+get_target_property (p8-platform_TARGET_TYPE p8-platform TYPE)
+if (p8-platform_TARGET_TYPE STREQUAL "STATIC_LIBRARY")
+  set (p8-platform_LIBRARY_TYPE "STATIC")
+else ()
+  set (p8-platform_LIBRARY_TYPE "UNKNOWN")
+endif ()
 configure_file (p8-platform-config.cmake.in
                 p8-platform-config.cmake @ONLY)
-install(FILES ${CMAKE_BINARY_DIR}/p8-platform-config.cmake
+install(FILES ${CMAKE_CURRENT_BINARY_DIR}/p8-platform-config.cmake
         DESTINATION ${CMAKE_INSTALL_LIBDIR}/p8-platform)
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/platform-p8-platform-2.1.0.1/LICENSE.md 
new/platform-p8-platform-2.2.0/LICENSE.md
--- old/platform-p8-platform-2.1.0.1/LICENSE.md 1970-01-01 01:00:00.000000000 
+0100
+++ new/platform-p8-platform-2.2.0/LICENSE.md   2026-07-16 22:15:43.000000000 
+0200
@@ -0,0 +1,311 @@
+This file is part of the libCEC(R) library.
+
+libCEC(R) is Copyright (C) 2011-2020 Pulse-Eight Limited.  All rights reserved.
+libCEC(R) is a original work, containing original code.
+
+libCEC(R) is a trademark of Pulse-Eight Limited.
+
+This program is dual-licensed; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program; if not, write to the Free Software
+Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
+Alternatively, you can license this library under a commercial license,
+please contact Pulse-Eight Licensing for more information.
+
+For more information contact:
+Pulse-Eight Licensing       <[email protected]>
+    http://www.pulse-eight.com/
+    http://www.pulse-eight.net/
+
+
+ 
+                     GNU GENERAL PUBLIC LICENSE
+                       Version 2, June 1991
+
+ Copyright (C) 1989, 1991 Free Software Foundation, Inc.,
+ 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ Everyone is permitted to copy and distribute verbatim copies
+ of this license document, but changing it is not allowed.
+
+                            Preamble
+
+  The licenses for most software are designed to take away your
+freedom to share and change it.  By contrast, the GNU General Public
+License is intended to guarantee your freedom to share and change free
+software--to make sure the software is free for all its users.  This
+General Public License applies to most of the Free Software
+Foundation's software and to any other program whose authors commit to
+using it.  (Some other Free Software Foundation software is covered by
+the GNU Lesser General Public License instead.)  You can apply it to
+your programs, too.
+
+  When we speak of free software, we are referring to freedom, not
+price.  Our General Public Licenses are designed to make sure that you
+have the freedom to distribute copies of free software (and charge for
+this service if you wish), that you receive source code or can get it
+if you want it, that you can change the software or use pieces of it
+in new free programs; and that you know you can do these things.
+
+  To protect your rights, we need to make restrictions that forbid
+anyone to deny you these rights or to ask you to surrender the rights.
+These restrictions translate to certain responsibilities for you if you
+distribute copies of the software, or if you modify it.
+
+  For example, if you distribute copies of such a program, whether
+gratis or for a fee, you must give the recipients all the rights that
+you have.  You must make sure that they, too, receive or can get the
+source code.  And you must show them these terms so they know their
+rights.
+
+  We protect your rights with two steps: (1) copyright the software, and
+(2) offer you this license which gives you legal permission to copy,
+distribute and/or modify the software.
+
+  Also, for each author's protection and ours, we want to make certain
+that everyone understands that there is no warranty for this free
+software.  If the software is modified by someone else and passed on, we
+want its recipients to know that what they have is not the original, so
+that any problems introduced by others will not reflect on the original
+authors' reputations.
+
+  Finally, any free program is threatened constantly by software
+patents.  We wish to avoid the danger that redistributors of a free
+program will individually obtain patent licenses, in effect making the
+program proprietary.  To prevent this, we have made it clear that any
+patent must be licensed for everyone's free use or not licensed at all.
+
+  The precise terms and conditions for copying, distribution and
+modification follow.
+
+                    GNU GENERAL PUBLIC LICENSE
+   TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
+
+  0. This License applies to any program or other work which contains
+a notice placed by the copyright holder saying it may be distributed
+under the terms of this General Public License.  The "Program", below,
+refers to any such program or work, and a "work based on the Program"
+means either the Program or any derivative work under copyright law:
+that is to say, a work containing the Program or a portion of it,
+either verbatim or with modifications and/or translated into another
+language.  (Hereinafter, translation is included without limitation in
+the term "modification".)  Each licensee is addressed as "you".
+
+Activities other than copying, distribution and modification are not
+covered by this License; they are outside its scope.  The act of
+running the Program is not restricted, and the output from the Program
+is covered only if its contents constitute a work based on the
+Program (independent of having been made by running the Program).
+Whether that is true depends on what the Program does.
+
+  1. You may copy and distribute verbatim copies of the Program's
+source code as you receive it, in any medium, provided that you
+conspicuously and appropriately publish on each copy an appropriate
+copyright notice and disclaimer of warranty; keep intact all the
+notices that refer to this License and to the absence of any warranty;
+and give any other recipients of the Program a copy of this License
+along with the Program.
+
+You may charge a fee for the physical act of transferring a copy, and
+you may at your option offer warranty protection in exchange for a fee.
+
+  2. You may modify your copy or copies of the Program or any portion
+of it, thus forming a work based on the Program, and copy and
+distribute such modifications or work under the terms of Section 1
+above, provided that you also meet all of these conditions:
+
+    a) You must cause the modified files to carry prominent notices
+    stating that you changed the files and the date of any change.
+
+    b) You must cause any work that you distribute or publish, that in
+    whole or in part contains or is derived from the Program or any
+    part thereof, to be licensed as a whole at no charge to all third
+    parties under the terms of this License.
+
+    c) If the modified program normally reads commands interactively
+    when run, you must cause it, when started running for such
+    interactive use in the most ordinary way, to print or display an
+    announcement including an appropriate copyright notice and a
+    notice that there is no warranty (or else, saying that you provide
+    a warranty) and that users may redistribute the program under
+    these conditions, and telling the user how to view a copy of this
+    License.  (Exception: if the Program itself is interactive but
+    does not normally print such an announcement, your work based on
+    the Program is not required to print an announcement.)
+
+These requirements apply to the modified work as a whole.  If
+identifiable sections of that work are not derived from the Program,
+and can be reasonably considered independent and separate works in
+themselves, then this License, and its terms, do not apply to those
+sections when you distribute them as separate works.  But when you
+distribute the same sections as part of a whole which is a work based
+on the Program, the distribution of the whole must be on the terms of
+this License, whose permissions for other licensees extend to the
+entire whole, and thus to each and every part regardless of who wrote it.
+
+Thus, it is not the intent of this section to claim rights or contest
+your rights to work written entirely by you; rather, the intent is to
+exercise the right to control the distribution of derivative or
+collective works based on the Program.
+
+In addition, mere aggregation of another work not based on the Program
+with the Program (or with a work based on the Program) on a volume of
+a storage or distribution medium does not bring the other work under
+the scope of this License.
+
+  3. You may copy and distribute the Program (or a work based on it,
+under Section 2) in object code or executable form under the terms of
+Sections 1 and 2 above provided that you also do one of the following:
+
+    a) Accompany it with the complete corresponding machine-readable
+    source code, which must be distributed under the terms of Sections
+    1 and 2 above on a medium customarily used for software interchange; or,
+
+    b) Accompany it with a written offer, valid for at least three
+    years, to give any third party, for a charge no more than your
+    cost of physically performing source distribution, a complete
+    machine-readable copy of the corresponding source code, to be
+    distributed under the terms of Sections 1 and 2 above on a medium
+    customarily used for software interchange; or,
+
+    c) Accompany it with the information you received as to the offer
+    to distribute corresponding source code.  (This alternative is
+    allowed only for noncommercial distribution and only if you
+    received the program in object code or executable form with such
+    an offer, in accord with Subsection b above.)
+
+The source code for a work means the preferred form of the work for
+making modifications to it.  For an executable work, complete source
+code means all the source code for all modules it contains, plus any
+associated interface definition files, plus the scripts used to
+control compilation and installation of the executable.  However, as a
+special exception, the source code distributed need not include
+anything that is normally distributed (in either source or binary
+form) with the major components (compiler, kernel, and so on) of the
+operating system on which the executable runs, unless that component
+itself accompanies the executable.
+
+If distribution of executable or object code is made by offering
+access to copy from a designated place, then offering equivalent
+access to copy the source code from the same place counts as
+distribution of the source code, even though third parties are not
+compelled to copy the source along with the object code.
+
+  4. You may not copy, modify, sublicense, or distribute the Program
+except as expressly provided under this License.  Any attempt
+otherwise to copy, modify, sublicense or distribute the Program is
+void, and will automatically terminate your rights under this License.
+However, parties who have received copies, or rights, from you under
+this License will not have their licenses terminated so long as such
+parties remain in full compliance.
+
+  5. You are not required to accept this License, since you have not
+signed it.  However, nothing else grants you permission to modify or
+distribute the Program or its derivative works.  These actions are
+prohibited by law if you do not accept this License.  Therefore, by
+modifying or distributing the Program (or any work based on the
+Program), you indicate your acceptance of this License to do so, and
+all its terms and conditions for copying, distributing or modifying
+the Program or works based on it.
+
+  6. Each time you redistribute the Program (or any work based on the
+Program), the recipient automatically receives a license from the
+original licensor to copy, distribute or modify the Program subject to
+these terms and conditions.  You may not impose any further
+restrictions on the recipients' exercise of the rights granted herein.
+You are not responsible for enforcing compliance by third parties to
+this License.
+
+  7. If, as a consequence of a court judgment or allegation of patent
+infringement or for any other reason (not limited to patent issues),
+conditions are imposed on you (whether by court order, agreement or
+otherwise) that contradict the conditions of this License, they do not
+excuse you from the conditions of this License.  If you cannot
+distribute so as to satisfy simultaneously your obligations under this
+License and any other pertinent obligations, then as a consequence you
+may not distribute the Program at all.  For example, if a patent
+license would not permit royalty-free redistribution of the Program by
+all those who receive copies directly or indirectly through you, then
+the only way you could satisfy both it and this License would be to
+refrain entirely from distribution of the Program.
+
+If any portion of this section is held invalid or unenforceable under
+any particular circumstance, the balance of the section is intended to
+apply and the section as a whole is intended to apply in other
+circumstances.
+
+It is not the purpose of this section to induce you to infringe any
+patents or other property right claims or to contest validity of any
+such claims; this section has the sole purpose of protecting the
+integrity of the free software distribution system, which is
+implemented by public license practices.  Many people have made
+generous contributions to the wide range of software distributed
+through that system in reliance on consistent application of that
+system; it is up to the author/donor to decide if he or she is willing
+to distribute software through any other system and a licensee cannot
+impose that choice.
+
+This section is intended to make thoroughly clear what is believed to
+be a consequence of the rest of this License.
+
+  8. If the distribution and/or use of the Program is restricted in
+certain countries either by patents or by copyrighted interfaces, the
+original copyright holder who places the Program under this License
+may add an explicit geographical distribution limitation excluding
+those countries, so that distribution is permitted only in or among
+countries not thus excluded.  In such case, this License incorporates
+the limitation as if written in the body of this License.
+
+  9. The Free Software Foundation may publish revised and/or new versions
+of the General Public License from time to time.  Such new versions will
+be similar in spirit to the present version, but may differ in detail to
+address new problems or concerns.
+
+Each version is given a distinguishing version number.  If the Program
+specifies a version number of this License which applies to it and "any
+later version", you have the option of following the terms and conditions
+either of that version or of any later version published by the Free
+Software Foundation.  If the Program does not specify a version number of
+this License, you may choose any version ever published by the Free Software
+Foundation.
+
+  10. If you wish to incorporate parts of the Program into other free
+programs whose distribution conditions are different, write to the author
+to ask for permission.  For software which is copyrighted by the Free
+Software Foundation, write to the Free Software Foundation; we sometimes
+make exceptions for this.  Our decision will be guided by the two goals
+of preserving the free status of all derivatives of our free software and
+of promoting the sharing and reuse of software generally.
+
+                            NO WARRANTY
+
+  11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
+FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW.  EXCEPT WHEN
+OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
+PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
+OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.  THE ENTIRE RISK AS
+TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU.  SHOULD THE
+PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
+REPAIR OR CORRECTION.
+
+  12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
+WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
+REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
+INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
+OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
+TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
+YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
+PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
+POSSIBILITY OF SUCH DAMAGES.
+
+                     END OF TERMS AND CONDITIONS
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/platform-p8-platform-2.1.0.1/README.md 
new/platform-p8-platform-2.2.0/README.md
--- old/platform-p8-platform-2.1.0.1/README.md  2016-10-26 12:51:27.000000000 
+0200
+++ new/platform-p8-platform-2.2.0/README.md    2026-07-16 22:15:43.000000000 
+0200
@@ -1,3 +1,41 @@
-# platform
-Platform support library used by libCEC and binary add-ons for Kodi
+![Pulse-Eight 
logo](https://pulseeight.files.wordpress.com/2016/02/pulse-eight-logo-white-on-green.png?w=200)
 
+# About
+This library provides platform specific support for other libraries, and is 
used by libCEC and binary add-ons for Kodi
+
+# Supported platforms
+
+## Linux, BSD & Apple OS X
+To compile this library, you'll need the following dependencies:
+* [cmake 3.12.0 or better](https://www.cmake.org/)
+* a supported C++ 11 compiler
+
+On Debian and Ubuntu, `apt-get install git cmake build-essential` pulls in 
these
+and the git client used below.
+
+Follow these instructions to compile and install the library:
+```
+git clone https://github.com/Pulse-Eight/platform.git
+mkdir platform/build
+cd platform/build
+cmake ..
+make -j4
+sudo make install
+```
+
+On Linux and BSD, run `sudo ldconfig` afterwards to refresh the linker cache.
+OS X has no equivalent and doesn't need one.
+
+## Microsoft Windows
+To compile this library on Windows, you'll need the following dependencies:
+* [cmake 3.12.0 or better](https://www.cmake.org/)
+* [Visual Studio 2022](https://www.visualstudio.com/)
+
+Follow these instructions to compile and install the library:
+```
+git clone https://github.com/Pulse-Eight/platform.git
+cd platform
+git submodule update --init --recursive
+cd windows
+build.cmd
+```
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/platform-p8-platform-2.1.0.1/UseMultiArch.cmake 
new/platform-p8-platform-2.2.0/UseMultiArch.cmake
--- old/platform-p8-platform-2.1.0.1/UseMultiArch.cmake 2016-10-26 
12:51:27.000000000 +0200
+++ new/platform-p8-platform-2.2.0/UseMultiArch.cmake   1970-01-01 
01:00:00.000000000 +0100
@@ -1,49 +0,0 @@
-# - Multiarch support in object code library directories
-#
-# This module sets the following variable
-#      CMAKE_INSTALL_LIBDIR         to lib, lib64 or lib/x86_64-linux-gnu
-#                                   depending on the platform; use this path
-#                                   for platform-specific binaries.
-#
-#      CMAKE_INSTALL_LIBDIR_NOARCH  to lib or lib64 depending on the platform;
-#                                   use this path for architecture-independent
-#                                   files.
-#
-# Note that it will override the results of GNUInstallDirs if included after
-# that module.
-
-# Fedora uses lib64/ for 64-bit systems, Debian uses lib/x86_64-linux-gnu;
-# Fedora put module files in lib64/ too, but Debian uses lib/ for that
-if ("${CMAKE_SYSTEM_NAME}" MATCHES "Linux" AND
-    "${CMAKE_INSTALL_PREFIX}" STREQUAL "/usr")
-  # Debian or Ubuntu?
-  if (EXISTS "/etc/debian_version")
-       set (_libdir_def "lib/${CMAKE_LIBRARY_ARCHITECTURE}")
-       set (_libdir_noarch "lib")
-  elseif (EXISTS "/etc/fedora-release" OR
-          EXISTS "/etc/redhat-release" OR
-          EXISTS "/etc/slackware-version" OR
-          EXISTS "/etc/gentoo-release")
-       # 64-bit system?
-       if (CMAKE_SIZEOF_VOID_P EQUAL 8)
-         set (_libdir_noarch "lib64")
-       else (CMAKE_SIZEOF_VOID_P EQUAL 8)
-         set (_libdir_noarch "lib")
-       endif (CMAKE_SIZEOF_VOID_P EQUAL 8)
-       set (_libdir_def "${_libdir_noarch}")
-  else ()
-    set (_libdir_def "lib")
-    set (_libdir_noarch "lib")
-  endif ()
-else ()
-  set (_libdir_def "lib")
-  set (_libdir_noarch "lib")
-endif ()
-
-# let the user override if somewhere else is desirable
-set (CMAKE_INSTALL_LIBDIR "${_libdir_def}" CACHE PATH "Object code libraries")
-set (CMAKE_INSTALL_LIBDIR_NOARCH "${_libdir_noarch}" CACHE PATH 
"Architecture-independent library files")
-mark_as_advanced (
-  CMAKE_INSTALL_LIBDIR
-  CMAKE_INSTALL_LIBDIR_NOARCH
-  )
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/platform-p8-platform-2.1.0.1/debian/changelog.in 
new/platform-p8-platform-2.2.0/debian/changelog.in
--- old/platform-p8-platform-2.1.0.1/debian/changelog.in        2016-10-26 
12:51:27.000000000 +0200
+++ new/platform-p8-platform-2.2.0/debian/changelog.in  2026-07-16 
22:15:43.000000000 +0200
@@ -1,3 +1,41 @@
+p8-platform (2.2.0~#DIST#) #DIST#; urgency=medium
+
+  * final release. this library is now in maintenance mode: everything it was
+    written to provide before C++11 is in the standard library, and libCEC, its
+    only actively developed user, is moving to std:: directly. fixes are still
+    welcome; no further development is planned.
+  * no abi or api break since 2.1.0.1: the exported symbols are unchanged and 
no
+    class layout, virtual or signature changed. the minor bump is for the new
+    functionality below, chiefly windows arm64 support. soname stays
+    libp8-platform.so.2
+  * [cmake] use GNUInstallDirs instead of a hand-rolled UseMultiArch.cmake. 
fixes
+    a relative -DCMAKE_INSTALL_LIBDIR being made absolute, which sent the 
library
+    and the .pc file into the build tree. closes #41
+  * [cmake] make the installed config relocatable, so it stops silently 
resolving
+    to a different p8-platform on the default search path. closes #38.
+    credits @bachp
+  * [cmake] export a static build as STATIC so a C project can link it. closes 
#35
+  * [cmake] report the patch level in the config version, so find_package() can
+    ask for a version with a given fix in it
+  * [cmake] require cmake 3.12, which also fixes the build with cmake 4.
+    closes #52. credits @bkuhls
+  * [cmake] require c++11 as the minimum standard. credits @lrusak
+  * [cmake] fix building as a submodule. credits @garbear
+  * [cmake] fix the ARM64/WIN64 symbol checks on windows. closes #51.
+    credits @fuzzard
+  * [threads] PreventCopy: block copies with = delete, and allow moves.
+    closes #33. credits @MatthewLundberg
+  * [threads] fixed -Wunused-value for every consumer that includes mutex.h
+  * [threads] fix CEvent auto-reset behaviour on a broadcast signal. credits 
@srg70
+  * [util] StringUtils: fix the build with -std=c++17. credits @lrusak
+  * [windows] added vs2022 and ARM64 support
+  * [docs] bring the README's build instructions up to date. closes #43.
+    credits @heitbaum, @xXP4trickXx
+  * added a .gitignore for the build dir. credits @Vavassor
+  * added LICENSE.md
+
+ -- Pulse-Eight Packaging <[email protected]>  Thu, 16 Jul 2026 
12:00:00 +0200
+
 p8-platform (2.1.0.1~#DIST#) #DIST#; urgency=medium
 
   * [tvos] remove IOKit linkage. credits @Memphiz
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/platform-p8-platform-2.1.0.1/p8-platform-config.cmake.in 
new/platform-p8-platform-2.2.0/p8-platform-config.cmake.in
--- old/platform-p8-platform-2.1.0.1/p8-platform-config.cmake.in        
2016-10-26 12:51:27.000000000 +0200
+++ new/platform-p8-platform-2.2.0/p8-platform-config.cmake.in  2026-07-16 
22:15:43.000000000 +0200
@@ -2,29 +2,44 @@
 #
 # Defines the following variables:
 #  p8-platform_FOUND        - true
-#  p8-platform_VERSION      - version of the platform library found, e.g. 0.2
+#  p8-platform_VERSION      - version of the platform library found, e.g. 2.2.0
 #  p8-platform_INCLUDE_DIRS - header directories with which to compile
 #  p8-platform_LINKER_FLAGS - flags that must be passed to the linker
 #  p8-platform_LIBRARIES    - names of the libraries with which to link
 #  p8-platform_LIBRARY_DIRS - directories in which the libraries are situated
 #
+
+# this file is installed inside the tree it describes, so work everything out
+# from its own location instead of the prefix it happened to be configured 
with.
+# that keeps the installed tree relocatable, and points the find_*() calls 
below
+# at our own tree, which would otherwise be free to pick up whichever
+# p8-platform turned up first on the default search path
+get_filename_component (_p8-platform_libdir "${CMAKE_CURRENT_LIST_DIR}/.." 
ABSOLUTE)
+get_filename_component (_p8-platform_prefix 
"${CMAKE_CURRENT_LIST_DIR}/@p8-platform_CONFIG_TO_PREFIX@" ABSOLUTE)
+
 # propagate these properties from one build system to the other
-set (p8-platform_VERSION 
"@p8-platform_VERSION_MAJOR@.@p8-platform_VERSION_MINOR@")
-set (p8-platform_INCLUDE_DIRS @p8-platform_INCLUDE_DIRS@ 
@CMAKE_INSTALL_PREFIX@/include)
-set (p8-platform_LIBRARY_DIRS "@CMAKE_LIBRARY_OUTPUT_DIRECTORY@")
+# report the patch level too: without it every 2.2.x looks like the same 
"2.2", so
+# there's no way to ask for the version that carries a given fix
+set (p8-platform_VERSION 
"@p8-platform_VERSION_MAJOR@.@p8-platform_VERSION_MINOR@.@p8-platform_VERSION_PATCH@")
+find_path (p8-platform_INCLUDE_DIRS p8-platform/os.h HINTS 
"${_p8-platform_prefix}/include")
+set (p8-platform_LIBRARY_DIRS "${_p8-platform_libdir}")
 set (p8-platform_LINKER_FLAGS "@p8-platform_LINKER_FLAGS@")
 set (p8-platform_CONFIG_VARS "@p8-platform_CONFIG_VARS@")
 
 # libraries come from the build tree where this file was generated
 if(WIN32)
-  set (p8-platform_LIBRARY 
"@CMAKE_INSTALL_PREFIX@/@CMAKE_INSTALL_LIBDIR@/p8-platform.lib")
+  set (p8-platform_LIBRARY "${_p8-platform_libdir}/p8-platform.lib")
 else(WIN32)
-  set (p8-platform_LIBRARY "-L@CMAKE_INSTALL_PREFIX@/@CMAKE_INSTALL_LIBDIR@ 
-lp8-platform")
+  find_library (p8-platform_LIBRARY p8-platform HINTS "${_p8-platform_libdir}")
 endif(WIN32)
 set (p8-platform_LIBRARIES ${p8-platform_LIBRARY} "@p8-platform_LIBRARIES@")
 mark_as_advanced (p8-platform_LIBRARY)
 
 # add the library as a target, so that other things in the project including
 # this file may depend on it and get rebuild if this library changes.
-add_library (p8-platform UNKNOWN IMPORTED)
+add_library (p8-platform @p8-platform_LIBRARY_TYPE@ IMPORTED)
 set_property (TARGET p8-platform PROPERTY IMPORTED_LOCATION 
"${p8-platform_LIBRARY}")
+# we're c++, so linking a static p8-platform needs the c++ runtime that the .a
+# can't ask for by itself. cmake only honours this for STATIC, and only if the
+# consumer has enabled CXX; the shared library records libstdc++ on its own
+set_property (TARGET p8-platform PROPERTY IMPORTED_LINK_INTERFACE_LANGUAGES 
"CXX")
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/platform-p8-platform-2.1.0.1/p8-platform.pc.in 
new/platform-p8-platform-2.2.0/p8-platform.pc.in
--- old/platform-p8-platform-2.1.0.1/p8-platform.pc.in  2016-10-26 
12:51:27.000000000 +0200
+++ new/platform-p8-platform-2.2.0/p8-platform.pc.in    2026-07-16 
22:15:43.000000000 +0200
@@ -1,5 +1,5 @@
 prefix=@CMAKE_INSTALL_PREFIX@
-libdir=@CMAKE_INSTALL_PREFIX@/@CMAKE_INSTALL_LIBDIR@
+libdir=@CMAKE_INSTALL_FULL_LIBDIR@
 includedir=@CMAKE_INSTALL_PREFIX@/include
 DEPENDENCIES=@p8-platform_LIBRARIES@
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/platform-p8-platform-2.1.0.1/src/os.h 
new/platform-p8-platform-2.2.0/src/os.h
--- old/platform-p8-platform-2.1.0.1/src/os.h   2016-10-26 12:51:27.000000000 
+0200
+++ new/platform-p8-platform-2.2.0/src/os.h     2026-07-16 22:15:43.000000000 
+0200
@@ -31,7 +31,7 @@
  *     http://www.pulse-eight.net/
  */
 
-#if (defined(_WIN32) || defined(_WIN64))
+#if (defined(_WIN32) || defined(_WIN64) || defined(_M_ARM64))
 #include "windows/os-types.h"
 #else
 #include "posix/os-types.h"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/platform-p8-platform-2.1.0.1/src/threads/mutex.h 
new/platform-p8-platform-2.2.0/src/threads/mutex.h
--- old/platform-p8-platform-2.1.0.1/src/threads/mutex.h        2016-10-26 
12:51:27.000000000 +0200
+++ new/platform-p8-platform-2.2.0/src/threads/mutex.h  2026-07-16 
22:15:43.000000000 +0200
@@ -49,9 +49,14 @@
     inline PreventCopy(void) {}
     inline ~PreventCopy(void) {}
 
-  private:
-    inline PreventCopy(const PreventCopy &c) { *this = c; }
-    inline PreventCopy &operator=(const PreventCopy &c){ (void)c; return 
*this; }
+    PreventCopy(const PreventCopy &c) = delete;
+    PreventCopy &operator=(const PreventCopy &c) = delete;
+
+    // moving is fine, and inheriting from this doesn't take that away. a 
subclass
+    // that declares a destructor still has to declare its own move, though: 
that
+    // suppresses the implicit one no matter what this base says
+    PreventCopy(PreventCopy &&c) = default;
+    PreventCopy &operator=(PreventCopy &&c) = default;
   };
 
   template <typename _Predicate>
@@ -86,7 +91,10 @@
 
     inline bool Lock(void)
     {
-      MutexLock(m_mutex);
+      // the posix MutexLock() yields the lock result and the windows one is
+      // void, so there's nothing portable to return: drop it explicitly, or
+      // every consumer compiling this header gets -Wunused-value
+      (void)MutexLock(m_mutex);
       ++m_iLockCount;
       return true;
     }
@@ -351,7 +359,8 @@
     {
       CLockObject lock(m_mutex);
       bool bReturn(m_bSignaled);
-      if (bReturn && (--m_iWaitingThreads == 0 || !m_bBroadcast) && 
m_bAutoReset)
+      --m_iWaitingThreads;
+      if (bReturn && (m_iWaitingThreads == 0 || !m_bBroadcast) && m_bAutoReset)
         m_bSignaled = false;
       return bReturn;
     }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/platform-p8-platform-2.1.0.1/src/util/StdString.h 
new/platform-p8-platform-2.2.0/src/util/StdString.h
--- old/platform-p8-platform-2.1.0.1/src/util/StdString.h       2016-10-26 
12:51:27.000000000 +0200
+++ new/platform-p8-platform-2.2.0/src/util/StdString.h 2026-07-16 
22:15:43.000000000 +0200
@@ -363,7 +363,7 @@
 
 #if !defined (SS_ANSI) && defined(_MSC_VER)
   #undef SS_IS_INTRESOURCE
-  #if defined(_WIN64)
+  #if defined(_WIN64) || defined(_M_ARM64)
     #define SS_IS_INTRESOURCE(_r) (((unsigned __int64)(_r) >> 16) == 0)
   #else
     #define SS_IS_INTRESOURCE(_r) (((unsigned long)(_r) >> 16) == 0)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/platform-p8-platform-2.1.0.1/src/util/StringUtils.cpp 
new/platform-p8-platform-2.2.0/src/util/StringUtils.cpp
--- old/platform-p8-platform-2.1.0.1/src/util/StringUtils.cpp   2016-10-26 
12:51:27.000000000 +0200
+++ new/platform-p8-platform-2.2.0/src/util/StringUtils.cpp     2026-07-16 
22:15:43.000000000 +0200
@@ -453,7 +453,7 @@
 
 std::string& StringUtils::TrimLeft(std::string &str)
 {
-  str.erase(str.begin(), ::find_if(str.begin(), str.end(), 
::not1(::ptr_fun(isspace_c))));
+  str.erase(str.begin(), ::find_if(str.begin(), str.end(), [](char s) { return 
isspace_c(s) == 0; }));
   return str;
 }
 
@@ -466,7 +466,7 @@
 
 std::string& StringUtils::TrimRight(std::string &str)
 {
-  str.erase(::find_if(str.rbegin(), str.rend(), 
::not1(::ptr_fun(isspace_c))).base(), str.end());
+  str.erase(::find_if(str.rbegin(), str.rend(), [](char s) { return 
isspace_c(s) == 0; }).base(), str.end());
   return str;
 }
 
@@ -668,7 +668,7 @@
   size_t sizeS2 = delimiter.size();
   size_t isize = input.size();
 
-  vector<unsigned int> positions;
+  vector<size_t> positions;
 
   newPos = input.find(delimiter, 0);
 
@@ -687,11 +687,11 @@
 
   // numFound is the number of delimiters which is one less
   // than the number of substrings
-  unsigned int numFound = positions.size();
+  size_t numFound = positions.size();
   if (iMaxStrings > 0 && numFound >= iMaxStrings)
     numFound = iMaxStrings - 1;
 
-  for ( unsigned int i = 0; i <= numFound; i++ )
+  for ( size_t i = 0; i <= numFound; i++ )
   {
     string s;
     if ( i == 0 )
@@ -1058,7 +1058,7 @@
   if (!m_uuidInitialized)
   {
     /* use current time as the seed for rand()*/
-    srand(time(NULL));
+    srand((unsigned int)time(NULL));
     m_uuidInitialized = true;
   }
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/platform-p8-platform-2.1.0.1/src/util/timeutils.h 
new/platform-p8-platform-2.2.0/src/util/timeutils.h
--- old/platform-p8-platform-2.1.0.1/src/util/timeutils.h       2016-10-26 
12:51:27.000000000 +0200
+++ new/platform-p8-platform-2.2.0/src/util/timeutils.h 2026-07-16 
22:15:43.000000000 +0200
@@ -44,7 +44,7 @@
 
 namespace P8PLATFORM
 {
-  #if defined(__WINDOWS__)
+  #if defined(__WINDOWS__) && !defined(SWIGPYTHON)
   struct timezone
   {
     int        tz_minuteswest;
@@ -68,12 +68,12 @@
     pcur_time->tv_usec = current.millitm * 1000L;
     if (tz)
     {
-      tz->tz_minuteswest = current.timezone;   /* minutes west of Greenwich  */
+      tz->tz_minuteswest = current.timezone;  /* minutes west of Greenwich  */
       tz->tz_dsttime = current.dstflag;              /* type of dst correction 
 */
     }
     return 0;
   }
-  #endif
+  #endif // defined(__WINDOWS__) && !defined(SWIGPYTHON)
 
   inline int64_t GetTimeMs()
   {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/platform-p8-platform-2.1.0.1/src/windows/inttypes.h 
new/platform-p8-platform-2.2.0/src/windows/inttypes.h
--- old/platform-p8-platform-2.1.0.1/src/windows/inttypes.h     2016-10-26 
12:51:27.000000000 +0200
+++ new/platform-p8-platform-2.2.0/src/windows/inttypes.h       2026-07-16 
22:15:43.000000000 +0200
@@ -186,13 +186,13 @@
 #define SCNdMAX     "I64d"
 #define SCNiMAX     "I64i"
 
-#ifdef _WIN64 // [
+#if defined(_WIN64) || defined(_M_ARM64) // [
 #  define SCNdPTR     "I64d"
 #  define SCNiPTR     "I64i"
-#else  // _WIN64 ][
+#else  // _WIN64 || _M_ARM64 ][
 #  define SCNdPTR     "ld"
 #  define SCNiPTR     "li"
-#endif  // _WIN64 ]
+#endif  // _WIN64 || _M_ARM64]
 
 // The fscanf macros for unsigned integers are:
 #define SCNo8       "o"
@@ -252,17 +252,17 @@
 #define SCNxMAX     "I64x"
 #define SCNXMAX     "I64X"
 
-#ifdef _WIN64 // [
+#defined(_WIN64) || defined(_M_ARM64) // [
 #  define SCNoPTR     "I64o"
 #  define SCNuPTR     "I64u"
 #  define SCNxPTR     "I64x"
 #  define SCNXPTR     "I64X"
-#else  // _WIN64 ][
+#else  // _WIN64 || _M_ARM64 ][
 #  define SCNoPTR     "lo"
 #  define SCNuPTR     "lu"
 #  define SCNxPTR     "lx"
 #  define SCNXPTR     "lX"
-#endif  // _WIN64 ]
+#endif  // _WIN64 || _M_ARM64 ]
 
 #endif // __STDC_FORMAT_MACROS ]
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/platform-p8-platform-2.1.0.1/src/windows/os-types.h 
new/platform-p8-platform-2.2.0/src/windows/os-types.h
--- old/platform-p8-platform-2.1.0.1/src/windows/os-types.h     2016-10-26 
12:51:27.000000000 +0200
+++ new/platform-p8-platform-2.2.0/src/windows/os-types.h       2026-07-16 
22:15:43.000000000 +0200
@@ -76,7 +76,7 @@
 #define INVALID_SERIAL_SOCKET_VALUE INVALID_HANDLE_VALUE
 
 #ifndef _SSIZE_T_DEFINED
-#ifdef  _WIN64
+#if defined(_WIN64) || defined(_M_ARM64)
 typedef __int64    ssize_t;
 #else
 typedef _W64 int   ssize_t;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/platform-p8-platform-2.1.0.1/src/windows/stdint.h 
new/platform-p8-platform-2.2.0/src/windows/stdint.h
--- old/platform-p8-platform-2.1.0.1/src/windows/stdint.h       2016-10-26 
12:51:27.000000000 +0200
+++ new/platform-p8-platform-2.2.0/src/windows/stdint.h 2026-07-16 
22:15:43.000000000 +0200
@@ -111,13 +111,13 @@
 typedef uint64_t  uint_fast64_t;
 
 // 7.18.1.4 Integer types capable of holding object pointers
-#ifdef _WIN64 // [
+#if defined(_WIN64) || defined(_M_ARM64) // [
    typedef signed __int64    intptr_t;
    typedef unsigned __int64  uintptr_t;
-#else // _WIN64 ][
+#else // _WIN64 || _M_ARM64 ][
    typedef _W64 signed int   intptr_t;
    typedef _W64 unsigned int uintptr_t;
-#endif // _WIN64 ]
+#endif // _WIN64 || _M_ARM64 ]
 
 // 7.18.1.5 Greatest-width integer types
 typedef int64_t   intmax_t;
@@ -171,15 +171,15 @@
 #define UINT_FAST64_MAX  UINT64_MAX
 
 // 7.18.2.4 Limits of integer types capable of holding object pointers
-#ifdef _WIN64 // [
+#if defined(_WIN64) || defined(_M_ARM64)// [
 #  define INTPTR_MIN   INT64_MIN
 #  define INTPTR_MAX   INT64_MAX
 #  define UINTPTR_MAX  UINT64_MAX
-#else // _WIN64 ][
+#else // _WIN64 || _M_ARM64 ][
 #  define INTPTR_MIN   INT32_MIN
 #  define INTPTR_MAX   INT32_MAX
 #  define UINTPTR_MAX  UINT32_MAX
-#endif // _WIN64 ]
+#endif // _WIN64 || _M_ARM64 ]
 
 // 7.18.2.5 Limits of greatest-width integer types
 #define INTMAX_MIN   INT64_MIN
@@ -188,23 +188,23 @@
 
 // 7.18.3 Limits of other integer types
 
-#ifdef _WIN64 // [
+#if defined(_WIN64) || defined(_M_ARM64)// [
 #  define PTRDIFF_MIN  _I64_MIN
 #  define PTRDIFF_MAX  _I64_MAX
-#else  // _WIN64 ][
+#else  // _WIN64 || _M_ARM64 ][
 #  define PTRDIFF_MIN  _I32_MIN
 #  define PTRDIFF_MAX  _I32_MAX
-#endif  // _WIN64 ]
+#endif  // _WIN64 || _M_ARM64 ]
 
 #define SIG_ATOMIC_MIN  INT_MIN
 #define SIG_ATOMIC_MAX  INT_MAX
 
 #ifndef SIZE_MAX // [
-#  ifdef _WIN64 // [
+#  if defined(_WIN64) || defined(_M_ARM64)// [
 #     define SIZE_MAX  _UI64_MAX
-#  else // _WIN64 ][
+#  else // _WIN64 || _M_ARM64 ][
 #     define SIZE_MAX  _UI32_MAX
-#  endif // _WIN64 ]
+#  endif // _WIN64 || _M_ARM64 ]
 #endif // SIZE_MAX ]
 
 // WCHAR_MIN and WCHAR_MAX are also defined in <wchar.h>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/platform-p8-platform-2.1.0.1/windows/build-lib.cmd 
new/platform-p8-platform-2.2.0/windows/build-lib.cmd
--- old/platform-p8-platform-2.1.0.1/windows/build-lib.cmd      2016-10-26 
12:51:27.000000000 +0200
+++ new/platform-p8-platform-2.2.0/windows/build-lib.cmd        2026-07-16 
22:15:43.000000000 +0200
@@ -11,14 +11,36 @@
 SET INSTALLPATH=%4
 IF [%4] == [] GOTO missingparams
 
+SET INSTALLPATH=%INSTALLPATH:"=%
 SET BUILDTARGET=%INSTALLPATH%\cmake\%BUILDARCH%
 SET TARGET=%INSTALLPATH%\%BUILDARCH%
 
-call %MYDIR%..\support\windows\cmake\generate.cmd %BUILDARCH% nmake %MYDIR%..\ 
%BUILDTARGET% %TARGET% %BUILDTYPE% %VSVERSION% static
-call %MYDIR%..\support\windows\cmake\build.cmd %BUILDARCH% %BUILDTARGET% 
%VSVERSION%
-goto exit
+rem Check support submodule
+IF NOT EXIST "%MYDIR%..\support\windows\cmake\build.cmd" (
+  rem Try to init the git submodules
+  cd "%MYDIR%.."
+  git submodule update --init -r >nul 2>&1
+
+  IF NOT EXIST "%MYDIR%..\support\windows\cmake\build.cmd" (
+    ECHO.*** support git submodule has not been checked out ***
+    ECHO.
+    ECHO.See docs\README.windows.md
+    EXIT /b 2
+  )
+)
+
+CALL "%MYDIR%..\support\windows\cmake\generate.cmd" %BUILDARCH% nmake 
"%MYDIR%..\" "%BUILDTARGET%" "%TARGET%" %BUILDTYPE% %VSVERSION% static
+CALL "%MYDIR%..\support\windows\cmake\build.cmd" %BUILDARCH% "%BUILDTARGET%" 
%VSVERSION%
+GOTO exit
 
 :missingparams
-echo "build-lib.cmd requires 4 parameters"
+ECHO.%~dp0 requires 4 parameters
+ECHO.  %~dp0 [architecture] [type] [version] [install path]
+ECHO.
+ECHO. architecture:    amd64 x86 arm64
+ECHO. type:            Release Debug
+ECHO. version:         Visual Studio version (2019)
+ECHO. install path:    installation path without quotes
+exit /b 99
 
-:exit
\ No newline at end of file
+:exit
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/platform-p8-platform-2.1.0.1/windows/build.cmd 
new/platform-p8-platform-2.2.0/windows/build.cmd
--- old/platform-p8-platform-2.1.0.1/windows/build.cmd  2016-10-26 
12:51:27.000000000 +0200
+++ new/platform-p8-platform-2.2.0/windows/build.cmd    2026-07-16 
22:15:43.000000000 +0200
@@ -6,13 +6,15 @@
 
 SET MYDIR=%~dp0
 SET BUILDTYPE=Release
-SET VSVERSION=12
+SET VSVERSION=2022
 SET INSTALLPATH=%MYDIR%..\build
 
-rmdir %MYDIR%..\build /s /q
+IF EXIST "%MYDIR%..\build" (
+  RMDIR /s /q "%MYDIR%..\build"
+)
 
-for %%T in (amd64 x86) do (
-  call %MYDIR%\build-lib.cmd %%T %BUILDTYPE% %VSVERSION% %INSTALLPATH%
+FOR %%T IN (amd64 x86 arm64) DO (
+  CALL "%MYDIR%\build-lib.cmd" %%T %BUILDTYPE% %VSVERSION% "%INSTALLPATH%"
 )
 
-rmdir %MYDIR%..\build\cmake /s /q
+RMDIR /s /q "%MYDIR%..\build\cmake"

Reply via email to