1
0
mirror of https://github.com/open-simh/simh.git synced 2026-04-26 12:17:25 +00:00

CMake: Updates

Issue #294: "apple silicon build problem(s?)": If the "--flavor/-f" flag
is not specified on the command line, then complain loudly, print help
and exit. The script used to default to "Unix Makefiles".

Updates:

- Add missing "-DHAVE_LIBPNG" compiler command line define when the PNG
  library is detected/present for screen capture support.

- Add "clang64" to the list of MinGW64 platforms for which the
  .travis/deps.sh script can install build dependencies.

- Add PThread4W_FOUND to the condition that sets async I/O for Win32
  when using vcpkg for build dependencies.

- Add vs2022-x64, vs2019-x64 and vs2017-x64 build environments to
  build 64-bit Windows executables.

- Use simulator AIO only where needed by the simulator (i.e., the
  simulator calls/uses AIO_CHECK_EVENT in sim_instr())

  - Add "USES_AIO" flag to add_simulator() to mark a simulator that
    acutally uses asynchronous I/O.

  - Build "_aio" SIMH core library variants that have AIO turned on,
    link with the "_aio" variant when a simulator sets USES_AIO.

  - Emit a warning message when WITH_ASYNC is False (CMake configuration
    option) to notify the user/developer that some functionality will be
    crippled.

  Affected simulator builds: 3b2 family, PDP-6, PDP-11, VAX family,
  IMLAC and TT2500. The makefile and cmake/generate.py also updated
  to remain in sync with CMake.

  N.B.: Simulators still link with the underlying platform's threading
  library. SEL32 requires pthreads or equivalent threading library,
  independent of AIO.

- cmake/cmake-builder.sh

  - New "--no-aio" flag: Build simulators without async I/O.

  - New "--no-aio-intrinsics" flag: Don't build async I/O using compiler
    compare-exchange, atomic load intrinsics.

- cmake/cmake-builder.ps1

  - New "-noaio" flag: Build simulators without async I/O.

  - New "-noaiointrinsics" flag: Don't build async I/O using compiler
    compare-exchange, atomic load intrinsics.

CMake 3.28.1 INTERFACE_LINK_LIBRARIES behavior change: The file name
must now be an absolute path. Relative paths no longer accepted.
Internally, SIMH enforces this if CMAKE_VERSION >= 3.19, when REAL_PATH
was first implemented.
This commit is contained in:
B. Scott Michel
2023-12-04 11:33:00 -08:00
committed by Paul Koning
parent f4c39a325c
commit d9d0e8bd74
18 changed files with 324 additions and 139 deletions

View File

@@ -140,6 +140,7 @@ add_simulator(infoserver100
VAX_411
FEATURE_FULL64
FEATURE_VIDEO
USES_AIO
BUILDROMS
LABEL VAX
PKG_FAMILY vax_family
@@ -169,6 +170,7 @@ add_simulator(infoserver1000
VM_VAX
IS_1000
FEATURE_FULL64
USES_AIO
BUILDROMS
LABEL VAX
PKG_FAMILY vax_family
@@ -186,6 +188,7 @@ add_simulator(infoserver150vxt
VAX_412
FEATURE_FULL64
FEATURE_VIDEO
USES_AIO
BUILDROMS
LABEL VAX
PKG_FAMILY vax_family
@@ -230,6 +233,7 @@ add_simulator(microvax1
VAX_610
FEATURE_FULL64
FEATURE_VIDEO
USES_AIO
BUILDROMS
LABEL VAX
PKG_FAMILY vax_family
@@ -246,6 +250,7 @@ add_simulator(microvax2
VAX_630
FEATURE_FULL64
FEATURE_VIDEO
USES_AIO
BUILDROMS
LABEL VAX
PKG_FAMILY vax_family
@@ -283,6 +288,7 @@ add_simulator(microvax2000
VAX_410
FEATURE_FULL64
FEATURE_VIDEO
USES_AIO
BUILDROMS
LABEL VAX
PKG_FAMILY vax_family
@@ -300,6 +306,7 @@ add_simulator(microvax3100
VAX_41A
FEATURE_FULL64
FEATURE_VIDEO
USES_AIO
BUILDROMS
LABEL VAX
PKG_FAMILY vax_family
@@ -317,6 +324,7 @@ add_simulator(microvax3100e
VAX_41D
FEATURE_FULL64
FEATURE_VIDEO
USES_AIO
BUILDROMS
LABEL VAX
PKG_FAMILY vax_family
@@ -332,6 +340,7 @@ add_simulator(microvax3100m80
VAX_440
VAX_47
FEATURE_FULL64
USES_AIO
BUILDROMS
LABEL VAX
PKG_FAMILY vax_family
@@ -362,6 +371,7 @@ add_simulator(vax
VM_VAX
FEATURE_FULL64
FEATURE_VIDEO
USES_AIO
BUILDROMS
LABEL VAX
PKG_FAMILY vax_family
@@ -435,6 +445,7 @@ add_simulator(vax730
VM_VAX
VAX_730
FEATURE_FULL64
USES_AIO
BUILDROMS
LABEL VAX
PKG_FAMILY vax_family
@@ -485,6 +496,7 @@ add_simulator(vax750
VM_VAX
VAX_750
FEATURE_FULL64
USES_AIO
BUILDROMS
LABEL VAX
PKG_FAMILY vax_family
@@ -536,6 +548,7 @@ add_simulator(vax780
VM_VAX
VAX_780
FEATURE_FULL64
USES_AIO
BUILDROMS
LABEL VAX
PKG_FAMILY vax_family
@@ -584,6 +597,7 @@ add_simulator(vax8200
VM_VAX
VAX_820
FEATURE_FULL64
USES_AIO
BUILDROMS
LABEL VAX
PKG_FAMILY vax_family
@@ -633,6 +647,7 @@ add_simulator(vax8600
VM_VAX
VAX_860
FEATURE_FULL64
USES_AIO
BUILDROMS
LABEL VAX
PKG_FAMILY vax_family
@@ -650,6 +665,7 @@ add_simulator(vaxstation3100m30
VAX_42A
FEATURE_FULL64
FEATURE_VIDEO
USES_AIO
BUILDROMS
LABEL VAX
PKG_FAMILY vax_family
@@ -667,6 +683,7 @@ add_simulator(vaxstation3100m38
VAX_42B
FEATURE_FULL64
FEATURE_VIDEO
USES_AIO
BUILDROMS
LABEL VAX
PKG_FAMILY vax_family
@@ -702,6 +719,7 @@ add_simulator(vaxstation3100m76
VAX_43
FEATURE_FULL64
FEATURE_VIDEO
USES_AIO
BUILDROMS
LABEL VAX
PKG_FAMILY vax_family
@@ -717,6 +735,7 @@ add_simulator(vaxstation4000m60
VAX_440
VAX_46
FEATURE_FULL64
USES_AIO
BUILDROMS
LABEL VAX
PKG_FAMILY vax_family
@@ -732,6 +751,7 @@ add_simulator(vaxstation4000vlc
VAX_440
VAX_48
FEATURE_FULL64
USES_AIO
BUILDROMS
LABEL VAX
PKG_FAMILY vax_family