simh-testsetgenerator/PDP11/CMakeLists.txt
B. Scott Michel d9d0e8bd74 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.
2024-02-01 12:51:13 -05:00

106 lines
2.4 KiB
CMake

## PDP11 simulators
##
## This is an automagically generated file. Do NOT EDIT.
## Any changes you make will be overwritten!!
##
## Make changes to the SIMH top-level makefile and then run the
## "cmake/generate.py" script to regenerate these files.
##
## cd cmake; python -m generate --help
##
## ------------------------------------------------------------
if (HAVE_UNITY_FRAMEWORK AND EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/unit-tests/CMakeLists.txt")
add_subdirectory(unit-tests)
endif ()
add_simulator(pdp11
SOURCES
pdp11_fp.c
pdp11_cpu.c
pdp11_dz.c
pdp11_cis.c
pdp11_lp.c
pdp11_rk.c
pdp11_rl.c
pdp11_rp.c
pdp11_rx.c
pdp11_stddev.c
pdp11_sys.c
pdp11_tc.c
pdp11_tm.c
pdp11_ts.c
pdp11_io.c
pdp11_rq.c
pdp11_tq.c
pdp11_pclk.c
pdp11_ry.c
pdp11_pt.c
pdp11_hk.c
pdp11_xq.c
pdp11_xu.c
pdp11_vh.c
pdp11_rh.c
pdp11_tu.c
pdp11_cpumod.c
pdp11_cr.c
pdp11_rf.c
pdp11_dl.c
pdp11_ta.c
pdp11_rc.c
pdp11_kg.c
pdp11_ke.c
pdp11_dc.c
pdp11_dmc.c
pdp11_kmc.c
pdp11_dup.c
pdp11_rs.c
pdp11_vt.c
pdp11_td.c
pdp11_io_lib.c
pdp11_rom.c
pdp11_ch.c
pdp11_dh.c
pdp11_ng.c
pdp11_daz.c
pdp11_tv.c
pdp11_mb.c
pdp11_rr.c
${DISPLAYNG}
${DISPLAYVT}
INCLUDES
${CMAKE_CURRENT_SOURCE_DIR}
DEFINES
VM_PDP11
FEATURE_VIDEO
FEATURE_DISPLAY
USES_AIO
BUILDROMS
LABEL PDP11
PKG_FAMILY pdp11_family
TEST pdp11)
add_simulator(uc15
SOURCES
${UC15D}/pdp11_cis.c
${UC15D}/pdp11_cpu.c
${UC15D}/pdp11_cpumod.c
${UC15D}/pdp11_cr.c
${UC15D}/pdp11_fp.c
${UC15D}/pdp11_io.c
${UC15D}/pdp11_io_lib.c
${UC15D}/pdp11_lp.c
${UC15D}/pdp11_rh.c
${UC15D}/pdp11_rk.c
${UC15D}/pdp11_stddev.c
${UC15D}/pdp11_sys.c
${UC15D}/pdp11_uc15.c
INCLUDES
${UC15D}
${PDP18BD}
DEFINES
VM_PDP11
UC15
LABEL PDP11
PKG_FAMILY pdp11_family
TEST uc15)