Merge branch 'master' of https://github.com/86Box/86Box into qt
This commit is contained in:
commit
9adc683cbc
@ -20,3 +20,11 @@ tab_width = 8
|
||||
[*.manifest]
|
||||
indent_style = space
|
||||
indent_size = 2
|
||||
|
||||
[*.yml]
|
||||
indent_style = space
|
||||
indent_size = 2
|
||||
|
||||
[**/CMakeLists.txt]
|
||||
indent_style = space
|
||||
indent_size = 4
|
||||
|
4
.github/workflows/cmake.yml
vendored
4
.github/workflows/cmake.yml
vendored
@ -84,7 +84,7 @@ jobs:
|
||||
- uses: actions/upload-artifact@v2
|
||||
with:
|
||||
name: '86Box-${{ matrix.build.name }}-MSYS2-${{ matrix.environment.msystem }}-${{ github.sha }}'
|
||||
path: build/artifacts/bin/**
|
||||
path: build/artifacts/**
|
||||
|
||||
vs2019:
|
||||
name: VS2019 ${{ matrix.build.name }} ${{ matrix.target-arch }} build (${{ matrix.toolset }})
|
||||
@ -130,7 +130,7 @@ jobs:
|
||||
- uses: actions/upload-artifact@v2
|
||||
with:
|
||||
name: '86Box-${{ matrix.build.name }}-VS2019-${{ matrix.target-arch }}-${{ matrix.toolset }}-${{ github.sha }}'
|
||||
path: build/artifacts/bin/**
|
||||
path: build/artifacts/**
|
||||
|
||||
linux:
|
||||
name: "Linux GCC 11"
|
||||
|
2
.gitignore
vendored
2
.gitignore
vendored
@ -5,7 +5,6 @@
|
||||
CMakeFiles
|
||||
Makefile
|
||||
*.a
|
||||
*.cmake
|
||||
/src/*.exe
|
||||
/src/86Box
|
||||
/src/include/86box/version.h
|
||||
@ -22,7 +21,6 @@ Makefile
|
||||
/src/*.log
|
||||
/src/*.dmp
|
||||
/src/nvr/
|
||||
/src/printer/
|
||||
/src/roms/
|
||||
/src/screenshots/
|
||||
|
||||
|
169
CMakeLists.txt
169
CMakeLists.txt
@ -1,16 +1,16 @@
|
||||
#
|
||||
# 86Box A hypervisor and IBM PC system emulator that specializes in
|
||||
# running old operating systems and software designed for IBM
|
||||
# PC systems and compatibles from 1981 through fairly recent
|
||||
# system designs based on the PCI bus.
|
||||
# 86Box A hypervisor and IBM PC system emulator that specializes in
|
||||
# running old operating systems and software designed for IBM
|
||||
# PC systems and compatibles from 1981 through fairly recent
|
||||
# system designs based on the PCI bus.
|
||||
#
|
||||
# This file is part of the 86Box distribution.
|
||||
# This file is part of the 86Box distribution.
|
||||
#
|
||||
# CMake build script.
|
||||
# CMake build script.
|
||||
#
|
||||
# Authors: David Hrdlička, <hrdlickadavid@outlook.com>
|
||||
# Authors: David Hrdlička, <hrdlickadavid@outlook.com>
|
||||
#
|
||||
# Copyright 2020,2021 David Hrdlička.
|
||||
# Copyright 2020,2021 David Hrdlička.
|
||||
#
|
||||
|
||||
cmake_minimum_required(VERSION 3.16)
|
||||
@ -18,22 +18,28 @@ cmake_minimum_required(VERSION 3.16)
|
||||
cmake_policy(SET CMP0091 NEW)
|
||||
cmake_policy(SET CMP0079 NEW)
|
||||
|
||||
if(VCPKG_TOOLCHAIN AND VCPKG_TARGET_TRIPLET MATCHES "static")
|
||||
set(CMAKE_MSVC_RUNTIME_LIBRARY "MultiThreaded$<$<CONFIG:Debug>:Debug>")
|
||||
endif()
|
||||
|
||||
project(86Box
|
||||
VERSION 3.1
|
||||
DESCRIPTION "Emulator of x86-based systems"
|
||||
HOMEPAGE_URL "https://86box.net"
|
||||
LANGUAGES C CXX)
|
||||
VERSION 3.1
|
||||
DESCRIPTION "Emulator of x86-based systems"
|
||||
HOMEPAGE_URL "https://86box.net"
|
||||
LANGUAGES C CXX)
|
||||
|
||||
if(WIN32 AND VCPKG_TOOLCHAIN)
|
||||
if(VCPKG_TARGET_TRIPLET MATCHES "-windows-static$")
|
||||
# `-static` triplet, use the statically linked CRT
|
||||
set(CMAKE_MSVC_RUNTIME_LIBRARY "MultiThreaded$<$<CONFIG:Debug>:Debug>")
|
||||
else()
|
||||
# Regular triplet (or `-static-md`), use the dynamically linked CRT
|
||||
set(CMAKE_MSVC_RUNTIME_LIBRARY "MultiThreaded$<$<CONFIG:Debug>:Debug>DLL")
|
||||
endif()
|
||||
endif()
|
||||
|
||||
# Detect the target architecture by trying to compile `src/arch_detect.c`
|
||||
try_compile(RESULT_VAR ${CMAKE_BINARY_DIR} "${CMAKE_CURRENT_SOURCE_DIR}/src/arch_detect.c" OUTPUT_VARIABLE ARCH)
|
||||
string(REGEX MATCH "ARCH ([a-zA-Z0-9_]+)" ARCH "${ARCH}")
|
||||
string(REPLACE "ARCH " "" ARCH "${ARCH}")
|
||||
if (NOT ARCH)
|
||||
set(ARCH unknown)
|
||||
set(ARCH unknown)
|
||||
endif()
|
||||
|
||||
include(CPack)
|
||||
@ -44,82 +50,91 @@ add_compile_definitions(CMAKE)
|
||||
add_compile_definitions("$<$<CONFIG:Debug>:DEBUG>")
|
||||
|
||||
if(WIN32)
|
||||
# Disables *_s function warnings
|
||||
add_compile_definitions(_CRT_SECURE_NO_WARNINGS)
|
||||
# Disables *_s function warnings
|
||||
add_compile_definitions(_CRT_SECURE_NO_WARNINGS)
|
||||
|
||||
# Disables POSIX name warnings
|
||||
add_compile_definitions(_CRT_NONSTDC_NO_WARNINGS)
|
||||
# Disables POSIX name warnings
|
||||
add_compile_definitions(_CRT_NONSTDC_NO_WARNINGS)
|
||||
|
||||
# Disables WinSock deprecation warnings
|
||||
add_compile_definitions(_WINSOCK_DEPRECATED_NO_WARNINGS)
|
||||
# Disables WinSock deprecation warnings
|
||||
add_compile_definitions(_WINSOCK_DEPRECATED_NO_WARNINGS)
|
||||
endif()
|
||||
|
||||
set(CMAKE_CXX_STANDARD 11)
|
||||
|
||||
option(RELEASE "Release build" OFF)
|
||||
option(USB "USB support" OFF)
|
||||
option(DYNAREC "Dynamic recompiler" ON)
|
||||
option(FLUIDSYNTH "FluidSynth" ON)
|
||||
option(MUNT "MUNT" ON)
|
||||
option(VRAMDUMP "Video RAM dumping" OFF)
|
||||
option(DINPUT "DirectInput" OFF)
|
||||
option(DISCORD "Discord integration" ON)
|
||||
option(QT "QT GUI" ON)
|
||||
option(CPPTHREADS "C++11 threads" ON)
|
||||
# Optional features
|
||||
#
|
||||
# Option Description Def.
|
||||
# ------ ----------- ----
|
||||
option(RELEASE "Release build" OFF)
|
||||
option(USB "USB support" OFF)
|
||||
option(DYNAREC "Dynamic recompiler" ON)
|
||||
option(FLUIDSYNTH "FluidSynth" ON)
|
||||
option(MUNT "MUNT" ON)
|
||||
option(VRAMDUMP "Video RAM dumping" OFF)
|
||||
option(DINPUT "DirectInput" OFF)
|
||||
option(DISCORD "Discord integration" ON)
|
||||
option(CPPTHREADS "C++11 threads" ON)
|
||||
option(NEW_DYNAREC "Use the PCem v15 (\"new\") dynamic recompiler" OFF)
|
||||
option(MINITRACE "Enable Chrome tracing using the modified minitrace library" OFF)
|
||||
option(DEV_BRANCH "Development branch" OFF)
|
||||
option(QT "QT GUI" ON)
|
||||
|
||||
option(NEW_DYNAREC "Use the PCem v15 (\"new\") dynamic recompiler" OFF)
|
||||
# Development branch features
|
||||
#
|
||||
# Option Description Def. Condition Otherwise
|
||||
# ------ ----------- ---- --------- ---------
|
||||
cmake_dependent_option(AMD_K5 "AMD K5" ON "DEV_BRANCH" OFF)
|
||||
cmake_dependent_option(CYRIX_6X86 "Cyrix 6x86" ON "DEV_BRANCH" OFF)
|
||||
cmake_dependent_option(GUSMAX "Gravis UltraSound MAX" ON "DEV_BRANCH" OFF)
|
||||
cmake_dependent_option(HEDAKA "Hedaka HED-919" ON "DEV_BRANCH" OFF)
|
||||
cmake_dependent_option(I450KX "Intel i450KX" ON "DEV_BRANCH" OFF)
|
||||
cmake_dependent_option(LASERXT "VTech Laser XT" ON "DEV_BRANCH" OFF)
|
||||
cmake_dependent_option(MGA "Matrox Mystique graphics adapters" ON "DEV_BRANCH" OFF)
|
||||
cmake_dependent_option(NO_SIO "Machines without emulated Super I/O chips" ON "DEV_BRANCH" OFF)
|
||||
cmake_dependent_option(OLIVETTI "Olivetti M290" ON "DEV_BRANCH" OFF)
|
||||
cmake_dependent_option(OPEN_AT "OpenAT" ON "DEV_BRANCH" OFF)
|
||||
cmake_dependent_option(OPENGL "OpenGL 3.0 Core renderer" ON "DEV_BRANCH" OFF)
|
||||
cmake_dependent_option(PAS16 "Pro Audio Spectrum 16" OFF "DEV_BRANCH" OFF)
|
||||
cmake_dependent_option(PS2M70T4 "IBM PS/2 model 70 (type 4)" ON "DEV_BRANCH" OFF)
|
||||
cmake_dependent_option(S3TRIO3D2X "S3 Trio3D/2X" ON "DEV_BRANCH" OFF)
|
||||
cmake_dependent_option(SIO_DETECT "Super I/O Detection Helper" ON "DEV_BRANCH" OFF)
|
||||
cmake_dependent_option(M154X "ALi ALADDiN IV" ON "DEV_BRANCH" OFF)
|
||||
cmake_dependent_option(M6117 "ALi M6117" ON "DEV_BRANCH" OFF)
|
||||
cmake_dependent_option(VGAWONDER "ATI VGA Wonder (ATI-18800)" ON "DEV_BRANCH" OFF)
|
||||
cmake_dependent_option(VNC "VNC renderer" OFF "DEV_BRANCH" OFF)
|
||||
cmake_dependent_option(XL24 "ATI VGA Wonder XL24 (ATI-28800-6)" ON "DEV_BRANCH" OFF)
|
||||
cmake_dependent_option(VECT486VL "HP Vectra 486VL" ON "DEV_BRANCH" OFF)
|
||||
|
||||
option(MINITRACE "Enable Chrome tracing using the modified minitrace library" OFF)
|
||||
|
||||
option(DEV_BRANCH "Development branch" OFF)
|
||||
CMAKE_DEPENDENT_OPTION(AMD_K5 "AMD K5" ON "DEV_BRANCH" OFF)
|
||||
CMAKE_DEPENDENT_OPTION(CYRIX_6X86 "Cyrix 6x86" ON "DEV_BRANCH" OFF)
|
||||
CMAKE_DEPENDENT_OPTION(GUSMAX "Gravis UltraSound MAX" ON "DEV_BRANCH" OFF)
|
||||
CMAKE_DEPENDENT_OPTION(HEDAKA "Hedaka HED-919" ON "DEV_BRANCH" OFF)
|
||||
CMAKE_DEPENDENT_OPTION(I450KX "Intel i450KX" ON "DEV_BRANCH" OFF)
|
||||
CMAKE_DEPENDENT_OPTION(LASERXT "VTech Laser XT" ON "DEV_BRANCH" OFF)
|
||||
CMAKE_DEPENDENT_OPTION(MGA "Matrox Mystique graphics adapters" ON "DEV_BRANCH" OFF)
|
||||
CMAKE_DEPENDENT_OPTION(NO_SIO "Machines without emulated Super I/O chips" ON "DEV_BRANCH" OFF)
|
||||
CMAKE_DEPENDENT_OPTION(OLIVETTI "Olivetti M290" ON "DEV_BRANCH" OFF)
|
||||
CMAKE_DEPENDENT_OPTION(OPEN_AT "OpenAT" ON "DEV_BRANCH" OFF)
|
||||
CMAKE_DEPENDENT_OPTION(OPENGL "OpenGL 3.0 Core renderer" ON "DEV_BRANCH" OFF)
|
||||
CMAKE_DEPENDENT_OPTION(PAS16 "Pro Audio Spectrum 16" OFF "DEV_BRANCH" OFF)
|
||||
CMAKE_DEPENDENT_OPTION(PS2M70T4 "IBM PS/2 model 70 (type 4)" ON "DEV_BRANCH" OFF)
|
||||
CMAKE_DEPENDENT_OPTION(S3TRIO3D2X "S3 Trio3D/2X" ON "DEV_BRANCH" OFF)
|
||||
CMAKE_DEPENDENT_OPTION(SIO_DETECT "Super I/O Detection Helper" ON "DEV_BRANCH" OFF)
|
||||
CMAKE_DEPENDENT_OPTION(M154X "ALi ALADDiN IV" ON "DEV_BRANCH" OFF)
|
||||
CMAKE_DEPENDENT_OPTION(M6117 "ALi M6117" ON "DEV_BRANCH" OFF)
|
||||
CMAKE_DEPENDENT_OPTION(VGAWONDER "ATI VGA Wonder (ATI-18800)" ON "DEV_BRANCH" OFF)
|
||||
CMAKE_DEPENDENT_OPTION(VNC "VNC renderer" ON "DEV_BRANCH" OFF)
|
||||
CMAKE_DEPENDENT_OPTION(XL24 "ATI VGA Wonder XL24 (ATI-28800-6)" ON "DEV_BRANCH" OFF)
|
||||
CMAKE_DEPENDENT_OPTION(VECT486VL "HP Vectra 486VL" ON "DEV_BRANCH" OFF)
|
||||
# Determine the build type
|
||||
set(RELEASE_BUILD OFF)
|
||||
set(BETA_BUILD OFF)
|
||||
set(ALPHA_BUILD OFF)
|
||||
|
||||
string(TOLOWER "${BUILD_TYPE}" BUILD_TYPE_LOWER)
|
||||
if(BUILD_TYPE_LOWER STREQUAL "release")
|
||||
add_compile_definitions(RELEASE_BUILD)
|
||||
# Release build
|
||||
set(RELEASE_BUILD ON)
|
||||
add_compile_definitions(RELEASE_BUILD)
|
||||
elseif(BUILD_TYPE_LOWER STREQUAL "beta")
|
||||
add_compile_definitions(BETA_BUILD)
|
||||
# Beta build
|
||||
set(BETA_BUILD ON)
|
||||
add_compile_definitions(BETA_BUILD)
|
||||
elseif(BUILD_TYPE_LOWER STREQUAL "alpha")
|
||||
add_compile_definitions(ALPHA_BUILD)
|
||||
# Alpha build
|
||||
set(ALPHA_BUILD ON)
|
||||
add_compile_definitions(ALPHA_BUILD)
|
||||
endif()
|
||||
|
||||
# HACK: Avoid a MSVC2019 compiler bug on ARM64 Debug builds
|
||||
if(MSVC_TOOLSET_VERSION GREATER_EQUAL 142 AND ARCH STREQUAL "arm64")
|
||||
# Define a cache option in case somebody wants to disable this workaround
|
||||
set(AVOID_LNK1322 ON CACHE BOOL "Prevent LNK1322 on MSVC2019 ARM64 debug builds")
|
||||
|
||||
if(AVOID_LNK1322)
|
||||
message(STATUS "Working around LNK1322 (86Box#1268)")
|
||||
set(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} /Gy")
|
||||
set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} /Gy")
|
||||
endif()
|
||||
# Variables introduced by richardg867 for versioning stuff
|
||||
if(NOT CMAKE_PROJECT_VERSION_PATCH)
|
||||
set(CMAKE_PROJECT_VERSION_PATCH 0)
|
||||
endif()
|
||||
|
||||
# HACK: MinGW and macOS <10.15 does not have `timespec_get`
|
||||
include(CheckSymbolExists)
|
||||
check_symbol_exists(timespec_get time.h HAS_TIMESPEC_GET)
|
||||
if(HAS_TIMESPEC_GET)
|
||||
add_compile_definitions(HAS_TIMESPEC_GET)
|
||||
if(NOT EMU_BUILD_NUM)
|
||||
set(EMU_BUILD_NUM 0)
|
||||
endif()
|
||||
if(NOT EMU_COPYRIGHT_YEAR)
|
||||
set(EMU_COPYRIGHT_YEAR 2021)
|
||||
endif()
|
||||
|
||||
add_subdirectory(src)
|
||||
|
4
cmake/flags-gcc-arm64.cmake
Normal file
4
cmake/flags-gcc-arm64.cmake
Normal file
@ -0,0 +1,4 @@
|
||||
include(${CMAKE_CURRENT_LIST_DIR}/flags-gcc.cmake)
|
||||
|
||||
set(CMAKE_C_FLAGS "-march=armv8-a -mfloat-abi=hard ${CMAKE_C_FLAGS}")
|
||||
set(CMAKE_CXX_FLAGS "-march=armv8-a -mfloat-abi=hard ${CMAKE_CXX_FLAGS}")
|
4
cmake/flags-gcc-armv7.cmake
Normal file
4
cmake/flags-gcc-armv7.cmake
Normal file
@ -0,0 +1,4 @@
|
||||
include(${CMAKE_CURRENT_LIST_DIR}/flags-gcc.cmake)
|
||||
|
||||
set(CMAKE_C_FLAGS "-march=armv7-a -mfloat-abi=hard ${CMAKE_C_FLAGS}")
|
||||
set(CMAKE_CXX_FLAGS "-march=armv7-a -mfloat-abi=hard ${CMAKE_CXX_FLAGS}")
|
4
cmake/flags-gcc-i686.cmake
Normal file
4
cmake/flags-gcc-i686.cmake
Normal file
@ -0,0 +1,4 @@
|
||||
include(${CMAKE_CURRENT_LIST_DIR}/flags-gcc.cmake)
|
||||
|
||||
set(CMAKE_C_FLAGS "-m32 -march=i686 -msse2 -mfpmath=sse ${CMAKE_C_FLAGS}")
|
||||
set(CMAKE_CXX_FLAGS "-m32 -march=i686 -msse2 -mfpmath=sse ${CMAKE_CXX_FLAGS}")
|
4
cmake/flags-gcc-x86_64.cmake
Normal file
4
cmake/flags-gcc-x86_64.cmake
Normal file
@ -0,0 +1,4 @@
|
||||
include(${CMAKE_CURRENT_LIST_DIR}/flags-gcc.cmake)
|
||||
|
||||
set(CMAKE_C_FLAGS "-m64 -march=x86-64 -msse2 -mfpmath=sse ${CMAKE_C_FLAGS}")
|
||||
set(CMAKE_CXX_FLAGS "-m64 -march=x86-64 -msse2 -mfpmath=sse ${CMAKE_CXX_FLAGS}")
|
10
cmake/flags-gcc.cmake
Normal file
10
cmake/flags-gcc.cmake
Normal file
@ -0,0 +1,10 @@
|
||||
set(CMAKE_CONFIGURATION_TYPES Debug;Release;Optimized)
|
||||
|
||||
set(CMAKE_C_FLAGS "-fomit-frame-pointer -mstackrealign -Wall -fno-strict-aliasing")
|
||||
set(CMAKE_CXX_FLAGS ${CMAKE_C_FLAGS})
|
||||
set(CMAKE_C_FLAGS_RELEASE "-g0 -O3")
|
||||
set(CMAKE_CXX_FLAGS_RELEASE ${CMAKE_C_FLAGS_RELEASE})
|
||||
set(CMAKE_C_FLAGS_DEBUG "-ggdb -Og")
|
||||
set(CMAKE_CXX_FLAGS_DEBUG ${CMAKE_C_FLAGS_DEBUG})
|
||||
set(CMAKE_C_FLAGS_OPTIMIZED "-march=native -mtune=native -O3 -ffp-contract=fast -flto")
|
||||
set(CMAKE_CXX_FLAGS_OPTIMIZED ${CMAKE_C_FLAGS_OPTIMIZED})
|
10
cmake/llvm-win32-arm64.cmake
Normal file
10
cmake/llvm-win32-arm64.cmake
Normal file
@ -0,0 +1,10 @@
|
||||
include(${CMAKE_CURRENT_LIST_DIR}/flags-gcc-arm64.cmake)
|
||||
|
||||
set(CMAKE_C_COMPILER clang)
|
||||
set(CMAKE_CXX_COMPILER clang++)
|
||||
set(CMAKE_RC_COMPILER rc)
|
||||
|
||||
set(CMAKE_C_COMPILER_TARGET aarch64-pc-windows-msvc)
|
||||
set(CMAKE_CXX_COMPILER_TARGET aarch64-pc-windows-msvc)
|
||||
|
||||
set(CMAKE_SYSTEM_PROCESSOR ARM64)
|
10
cmake/llvm-win32-i686.cmake
Normal file
10
cmake/llvm-win32-i686.cmake
Normal file
@ -0,0 +1,10 @@
|
||||
include(${CMAKE_CURRENT_LIST_DIR}/flags-gcc-i686.cmake)
|
||||
|
||||
set(CMAKE_C_COMPILER clang)
|
||||
set(CMAKE_CXX_COMPILER clang++)
|
||||
set(CMAKE_RC_COMPILER rc)
|
||||
|
||||
set(CMAKE_C_COMPILER_TARGET i686-pc-windows-msvc)
|
||||
set(CMAKE_CXX_COMPILER_TARGET i686-pc-windows-msvc)
|
||||
|
||||
set(CMAKE_SYSTEM_PROCESSOR X86)
|
10
cmake/llvm-win32-x86_64.cmake
Normal file
10
cmake/llvm-win32-x86_64.cmake
Normal file
@ -0,0 +1,10 @@
|
||||
include(${CMAKE_CURRENT_LIST_DIR}/flags-gcc-x86_64.cmake)
|
||||
|
||||
set(CMAKE_C_COMPILER clang)
|
||||
set(CMAKE_CXX_COMPILER clang++)
|
||||
set(CMAKE_RC_COMPILER rc)
|
||||
|
||||
set(CMAKE_C_COMPILER_TARGET x86_64-pc-windows-msvc)
|
||||
set(CMAKE_CXX_COMPILER_TARGET x86_64-pc-windows-msvc)
|
||||
|
||||
set(CMAKE_SYSTEM_PROCESSOR AMD64)
|
@ -1,136 +1,80 @@
|
||||
#
|
||||
# 86Box A hypervisor and IBM PC system emulator that specializes in
|
||||
# running old operating systems and software designed for IBM
|
||||
# PC systems and compatibles from 1981 through fairly recent
|
||||
# system designs based on the PCI bus.
|
||||
# 86Box A hypervisor and IBM PC system emulator that specializes in
|
||||
# running old operating systems and software designed for IBM
|
||||
# PC systems and compatibles from 1981 through fairly recent
|
||||
# system designs based on the PCI bus.
|
||||
#
|
||||
# This file is part of the 86Box distribution.
|
||||
# This file is part of the 86Box distribution.
|
||||
#
|
||||
# CMake build script.
|
||||
# CMake build script.
|
||||
#
|
||||
# Authors: David Hrdlička, <hrdlickadavid@outlook.com>
|
||||
# dob205
|
||||
# Authors: David Hrdlička, <hrdlickadavid@outlook.com>
|
||||
# dob205
|
||||
#
|
||||
# Copyright 2020,2021 David Hrdlička.
|
||||
# Copyright 2021 dob205.
|
||||
# Copyright 2020,2021 David Hrdlička.
|
||||
# Copyright 2021 dob205.
|
||||
#
|
||||
|
||||
# Prepare the macOS app bundle icon depending on the release channel
|
||||
set(APP_ICON_MACOSX)
|
||||
if (APPLE)
|
||||
if(RELEASE_BUILD)
|
||||
set(APP_ICON_MACOSX ${CMAKE_CURRENT_SOURCE_DIR}/mac/icons/release/86Box.icns)
|
||||
elseif(BETA_BUILD)
|
||||
set(APP_ICON_MACOSX ${CMAKE_CURRENT_SOURCE_DIR}/mac/icons/beta/86Box.icns)
|
||||
elseif(ALPHA_BUILD)
|
||||
set(APP_ICON_MACOSX ${CMAKE_CURRENT_SOURCE_DIR}/mac/icons/dev/86Box.icns)
|
||||
else()
|
||||
set(APP_ICON_MACOSX ${CMAKE_CURRENT_SOURCE_DIR}/mac/icons/branch/86Box.icns)
|
||||
endif()
|
||||
|
||||
set_source_files_properties(${APP_ICON_MACOSX} PROPERTIES
|
||||
MACOSX_PACKAGE_LOCATION "Resources")
|
||||
endif()
|
||||
|
||||
# WIN32 marks us as a GUI app on Windows
|
||||
# MACOSX_BUNDLE prepares a macOS application bundle including with the app icon
|
||||
add_executable(86Box WIN32 MACOSX_BUNDLE 86box.c config.c log.c random.c timer.c io.c acpi.c apm.c
|
||||
dma.c ddma.c nmi.c pic.c pit.c port_6x.c port_92.c ppi.c pci.c mca.c usb.c fifo8.c
|
||||
device.c nvr.c nvr_at.c nvr_ps2.c ${APP_ICON_MACOSX})
|
||||
dma.c ddma.c nmi.c pic.c pit.c port_6x.c port_92.c ppi.c pci.c mca.c usb.c fifo8.c
|
||||
device.c nvr.c nvr_at.c nvr_ps2.c)
|
||||
|
||||
if(CPPTHREADS)
|
||||
target_sources(86Box PRIVATE thread.cpp)
|
||||
endif()
|
||||
|
||||
if(APPLE)
|
||||
target_link_libraries(86Box "-framework AppKit")
|
||||
target_sources(86Box PRIVATE thread.cpp)
|
||||
endif()
|
||||
|
||||
if(NEW_DYNAREC)
|
||||
add_compile_definitions(USE_NEW_DYNAREC)
|
||||
add_compile_definitions(USE_NEW_DYNAREC)
|
||||
endif()
|
||||
|
||||
if(RELEASE)
|
||||
add_compile_definitions(RELEASE_BUILD)
|
||||
add_compile_definitions(RELEASE_BUILD)
|
||||
endif()
|
||||
|
||||
if(DYNAREC)
|
||||
add_compile_definitions(USE_DYNAREC)
|
||||
add_compile_definitions(USE_DYNAREC)
|
||||
endif()
|
||||
|
||||
if(VRAMDUMP)
|
||||
add_compile_definitions(ENABLE_VRAM_DUMP)
|
||||
add_compile_definitions(ENABLE_VRAM_DUMP)
|
||||
endif()
|
||||
|
||||
if(DEV_BRANCH)
|
||||
add_compile_definitions(DEV_BRANCH)
|
||||
add_compile_definitions(DEV_BRANCH)
|
||||
endif()
|
||||
|
||||
if(VNC)
|
||||
add_compile_definitions(USE_VNC)
|
||||
add_library(vnc OBJECT vnc.c vnc_keymap.c)
|
||||
target_link_libraries(86Box vnc vncserver)
|
||||
if (WIN32)
|
||||
target_link_libraries(86Box ws2_32)
|
||||
endif()
|
||||
add_compile_definitions(USE_VNC)
|
||||
add_library(vnc OBJECT vnc.c vnc_keymap.c)
|
||||
target_link_libraries(86Box vnc vncserver)
|
||||
if (WIN32)
|
||||
target_link_libraries(86Box ws2_32)
|
||||
endif()
|
||||
endif()
|
||||
|
||||
target_link_libraries(86Box cpu chipset mch dev mem fdd game cdrom zip mo hdd
|
||||
net print scsi sio snd vid voodoo plat ui)
|
||||
net print scsi sio snd vid voodoo plat ui)
|
||||
|
||||
if(WIN32 AND ARCH STREQUAL "i386")
|
||||
if(MSVC)
|
||||
target_link_options(86Box PRIVATE "/LARGEADDRESSAWARE")
|
||||
else()
|
||||
target_link_options(86Box PRIVATE "LINKER:--large-address-aware")
|
||||
endif()
|
||||
if(MINGW)
|
||||
target_link_options(86Box PRIVATE "LINKER:--large-address-aware")
|
||||
else()
|
||||
target_link_options(86Box PRIVATE "LINKER:/LARGEADDRESSAWARE")
|
||||
endif()
|
||||
endif()
|
||||
|
||||
if(MINGW)
|
||||
target_link_options(86Box PRIVATE "-static")
|
||||
set(CMAKE_FIND_LIBRARY_SUFFIXES ".a" ".dll.a")
|
||||
target_link_options(86Box PRIVATE "-static")
|
||||
set(CMAKE_FIND_LIBRARY_SUFFIXES ".a" ".dll.a")
|
||||
endif()
|
||||
|
||||
# Variables introduced by richardg867 for versioning stuff
|
||||
if(NOT CMAKE_PROJECT_VERSION_PATCH)
|
||||
set(CMAKE_PROJECT_VERSION_PATCH 0)
|
||||
endif()
|
||||
if(NOT EMU_BUILD_NUM)
|
||||
set(EMU_BUILD_NUM 0)
|
||||
endif()
|
||||
if(NOT EMU_COPYRIGHT_YEAR)
|
||||
set(EMU_COPYRIGHT_YEAR 2021)
|
||||
endif()
|
||||
|
||||
#some macOS specific configuration steps
|
||||
if(APPLE)
|
||||
# Force using the newest library if it's installed by homebrew
|
||||
set(CMAKE_FIND_FRAMEWORK LAST)
|
||||
|
||||
# Force using the newest library if it's installed by homebrew
|
||||
set(CMAKE_FIND_FRAMEWORK LAST)
|
||||
|
||||
# prepare stuff for macOS app bundles
|
||||
set(CMAKE_MACOSX_BUNDLE 1)
|
||||
|
||||
# setting our compilation target to macOS 10.13 High Sierra
|
||||
set(CMAKE_OSX_DEPLOYMENT_TARGET "10.13")
|
||||
|
||||
# set the Info.plist properly
|
||||
set_target_properties(86Box PROPERTIES MACOSX_BUNDLE_INFO_PLIST ${CMAKE_CURRENT_SOURCE_DIR}/mac/Info.plist.in)
|
||||
set(MACOSX_BUNDLE_GUI_IDENTIFIER net.86Box.86Box)
|
||||
set(MACOSX_BUNDLE_BUNDLE_NAME 86Box)
|
||||
set(MACOSX_BUNDLE_BUNDLE_VERSION 3.1.${EMU_BUILD_NUM})
|
||||
set(MACOSX_BUNDLE_SHORT_VERSION_STRING "3.1.${EMU_BUILD_NUM}")
|
||||
set(MACOSX_BUNDLE_LONG_VERSION_STRING "3.1.${EMU_BUILD_NUM}")
|
||||
set(MACOSX_BUNDLE_ICON_FILE 86Box.icns)
|
||||
set(MACOSX_BUNDLE_INFO_STRING "A emulator of old computers")
|
||||
set(MACOSX_BUNDLE_COPYRIGHT "© 2007-${EMU_COPYRIGHT_YEAR} 86Box contributors")
|
||||
|
||||
|
||||
# preparing the code signing for easier distribution, Apple dev certificate needed at one point
|
||||
#set(XCODE_ATTRIBUTE_CODE_SIGNING_REQUIRED "YES")
|
||||
#set(XCODE_ATTRIBUTE_CODE_SIGN_IDENTITY "-")
|
||||
#set(XCODE_ATTRIBUTE_CODE_SIGN_ENTITLEMENTS ${CMAKE_CURRENT_SOURCE_DIR}/mac/codesign/dev/app.entitlements)
|
||||
|
||||
# setting our compilation target to macOS 10.13 High Sierra
|
||||
set(CMAKE_OSX_DEPLOYMENT_TARGET "10.13")
|
||||
endif()
|
||||
|
||||
if(QT)
|
||||
@ -149,7 +93,9 @@ endif()
|
||||
find_package(Freetype REQUIRED)
|
||||
include_directories(${FREETYPE_INCLUDE_DIRS})
|
||||
if(APPLE)
|
||||
target_link_libraries(86Box Freetype::Freetype) # bundles freetype for the macOS app bundle
|
||||
# Freetype is dynamically loaded by the emulator, however, we link it
|
||||
# on macOS so it gets copied to the bundle by the installation process
|
||||
target_link_libraries(86Box Freetype::Freetype)
|
||||
endif()
|
||||
|
||||
find_package(OpenAL REQUIRED)
|
||||
@ -158,16 +104,12 @@ target_link_libraries(86Box ${OPENAL_LIBRARY})
|
||||
|
||||
find_package(SDL2 REQUIRED)
|
||||
include_directories(${SDL2_INCLUDE_DIRS})
|
||||
if(MINGW)
|
||||
target_link_libraries(86Box SDL2::SDL2-static)
|
||||
elseif(WIN32)
|
||||
target_link_libraries(86Box SDL2::SDL2)
|
||||
if(WIN32 AND TARGET SDL2::SDL2-static)
|
||||
target_link_libraries(86Box SDL2::SDL2-static)
|
||||
elseif(TARGET SDL2::SDL2)
|
||||
target_link_libraries(86Box SDL2::SDL2)
|
||||
else()
|
||||
if (TARGET SDL2::SDL2)
|
||||
target_link_libraries(86Box SDL2::SDL2)
|
||||
else()
|
||||
target_link_libraries(86Box ${SDL2_LIBRARIES})
|
||||
endif()
|
||||
target_link_libraries(86Box ${SDL2_LIBRARIES})
|
||||
endif()
|
||||
|
||||
find_package(PNG REQUIRED)
|
||||
@ -175,17 +117,17 @@ include_directories(${PNG_INCLUDE_DIRS})
|
||||
target_link_libraries(86Box PNG::PNG)
|
||||
|
||||
if(VCPKG_TOOLCHAIN)
|
||||
# vcpkg includes a config file for rtmidi
|
||||
find_package(RtMidi REQUIRED)
|
||||
target_link_libraries(86Box RtMidi::rtmidi)
|
||||
# vcpkg includes a config file for rtmidi
|
||||
find_package(RtMidi REQUIRED)
|
||||
target_link_libraries(86Box RtMidi::rtmidi)
|
||||
else()
|
||||
find_package(PkgConfig REQUIRED)
|
||||
pkg_check_modules(RTMIDI REQUIRED IMPORTED_TARGET rtmidi)
|
||||
target_link_libraries(86Box PkgConfig::RTMIDI)
|
||||
find_package(PkgConfig REQUIRED)
|
||||
pkg_check_modules(RTMIDI REQUIRED IMPORTED_TARGET rtmidi)
|
||||
target_link_libraries(86Box PkgConfig::RTMIDI)
|
||||
|
||||
if(WIN32)
|
||||
target_link_libraries(PkgConfig::RTMIDI INTERFACE winmm)
|
||||
endif()
|
||||
if(WIN32)
|
||||
target_link_libraries(PkgConfig::RTMIDI INTERFACE winmm)
|
||||
endif()
|
||||
endif()
|
||||
|
||||
configure_file(include/86box/version.h.in include/86box/version.h @ONLY)
|
||||
@ -193,9 +135,9 @@ include_directories(${CMAKE_CURRENT_BINARY_DIR}/include)
|
||||
|
||||
include_directories(include)
|
||||
if(NEW_DYNAREC)
|
||||
include_directories(cpu codegen_new)
|
||||
include_directories(cpu codegen_new)
|
||||
else()
|
||||
include_directories(cpu codegen)
|
||||
include_directories(cpu codegen)
|
||||
endif()
|
||||
|
||||
add_subdirectory(cdrom)
|
||||
@ -203,9 +145,9 @@ add_subdirectory(chipset)
|
||||
|
||||
add_subdirectory(cpu)
|
||||
if(NEW_DYNAREC)
|
||||
add_subdirectory(codegen_new)
|
||||
add_subdirectory(codegen_new)
|
||||
else()
|
||||
add_subdirectory(codegen)
|
||||
add_subdirectory(codegen)
|
||||
endif()
|
||||
|
||||
if(MINITRACE)
|
||||
@ -214,22 +156,24 @@ if(MINITRACE)
|
||||
target_link_libraries(86Box minitrace)
|
||||
endif()
|
||||
|
||||
if(APPLE)
|
||||
install(TARGETS 86Box DESTINATION "bin")
|
||||
if(WIN32 OR APPLE)
|
||||
# Copy the binary to the root of the install prefix on Windows and macOS
|
||||
install(TARGETS 86Box DESTINATION ".")
|
||||
else()
|
||||
install(TARGETS 86Box)
|
||||
# On Linux we want to copy the binary to the `bin` folder.
|
||||
install(TARGETS 86Box)
|
||||
endif()
|
||||
|
||||
# adjustments for macOS app bundles
|
||||
# Install our dependencies to the macOS bundle
|
||||
if(APPLE)
|
||||
set(APPS ${CMAKE_CURRENT_BINARY_DIR}/86Box.app)
|
||||
install(CODE "
|
||||
include(InstallRequiredSystemLibraries)
|
||||
include(BundleUtilities)
|
||||
fixup_bundle(\"${APPS}\" \"\" \"\")"
|
||||
COMPONENT Runtime)
|
||||
install(CODE "
|
||||
include(BundleUtilities)
|
||||
get_filename_component(CMAKE_INSTALL_PREFIX_ABSOLUTE \${CMAKE_INSTALL_PREFIX} ABSOLUTE)
|
||||
fixup_bundle(\"\${CMAKE_INSTALL_PREFIX_ABSOLUTE}/86Box.app\" \"\" \"\")"
|
||||
COMPONENT Runtime)
|
||||
|
||||
# needed for Qt packaging
|
||||
if (QT)
|
||||
# needed for Qt packaging
|
||||
# get the macdeployqt path
|
||||
get_target_property(_qmake_executable Qt5::qmake IMPORTED_LOCATION)
|
||||
get_filename_component(_qt_bin_dir "${_qmake_executable}" DIRECTORY)
|
||||
@ -242,16 +186,29 @@ if(APPLE)
|
||||
-always-overwrite
|
||||
COMMENT "Running macdeployqt..."
|
||||
)
|
||||
endif()
|
||||
endif()
|
||||
|
||||
# Install our dependencies if using vcpkg
|
||||
if(VCPKG_TOOLCHAIN)
|
||||
x_vcpkg_install_local_dependencies(TARGETS 86Box DESTINATION "bin")
|
||||
x_vcpkg_install_local_dependencies(TARGETS 86Box DESTINATION ".")
|
||||
endif()
|
||||
|
||||
# Install the PDB file on Windows builds
|
||||
if(MSVC)
|
||||
install(FILES $<TARGET_PDB_FILE:86Box>
|
||||
CONFIGURATIONS Debug RelWithDebInfo
|
||||
DESTINATION "bin")
|
||||
# CMake fully supports PDB files on MSVC-compatible compilers
|
||||
install(FILES $<TARGET_PDB_FILE:86Box>
|
||||
CONFIGURATIONS Debug RelWithDebInfo
|
||||
DESTINATION ".")
|
||||
elseif(WIN32)
|
||||
# Other compilers/linkers (such as Clang in GCC-compatible mode) also
|
||||
# emit PDB files when targeting Windows, however, CMake only supports
|
||||
# the relevant properties with MSVC and clones. Try to install
|
||||
# the PDB file assuming it's in the same path as the EXE.
|
||||
install(FILES "$<TARGET_FILE_DIR:86Box>/$<TARGET_FILE_BASE_NAME:86Box>.pdb"
|
||||
CONFIGURATIONS Debug RelWithDebInfo
|
||||
DESTINATION "."
|
||||
OPTIONAL)
|
||||
endif()
|
||||
|
||||
add_subdirectory(device)
|
||||
@ -273,7 +230,7 @@ endif()
|
||||
if (QT)
|
||||
add_subdirectory(qt)
|
||||
elseif(WIN32)
|
||||
add_subdirectory(win)
|
||||
add_subdirectory(win)
|
||||
else()
|
||||
add_subdirectory(unix)
|
||||
add_subdirectory(unix)
|
||||
endif()
|
||||
|
@ -1,16 +1,16 @@
|
||||
#
|
||||
# 86Box A hypervisor and IBM PC system emulator that specializes in
|
||||
# running old operating systems and software designed for IBM
|
||||
# PC systems and compatibles from 1981 through fairly recent
|
||||
# system designs based on the PCI bus.
|
||||
# 86Box A hypervisor and IBM PC system emulator that specializes in
|
||||
# running old operating systems and software designed for IBM
|
||||
# PC systems and compatibles from 1981 through fairly recent
|
||||
# system designs based on the PCI bus.
|
||||
#
|
||||
# This file is part of the 86Box distribution.
|
||||
# This file is part of the 86Box distribution.
|
||||
#
|
||||
# CMake build script.
|
||||
# CMake build script.
|
||||
#
|
||||
# Authors: David Hrdlička, <hrdlickadavid@outlook.com>
|
||||
# Authors: David Hrdlička, <hrdlickadavid@outlook.com>
|
||||
#
|
||||
# Copyright 2020,2021 David Hrdlička.
|
||||
# Copyright 2020,2021 David Hrdlička.
|
||||
#
|
||||
|
||||
add_library(cdrom OBJECT cdrom.c cdrom_image_backend.c cdrom_image.c)
|
@ -1,26 +1,26 @@
|
||||
#
|
||||
# 86Box A hypervisor and IBM PC system emulator that specializes in
|
||||
# running old operating systems and software designed for IBM
|
||||
# PC systems and compatibles from 1981 through fairly recent
|
||||
# system designs based on the PCI bus.
|
||||
# 86Box A hypervisor and IBM PC system emulator that specializes in
|
||||
# running old operating systems and software designed for IBM
|
||||
# PC systems and compatibles from 1981 through fairly recent
|
||||
# system designs based on the PCI bus.
|
||||
#
|
||||
# This file is part of the 86Box distribution.
|
||||
# This file is part of the 86Box distribution.
|
||||
#
|
||||
# CMake build script.
|
||||
# CMake build script.
|
||||
#
|
||||
# Authors: David Hrdlička, <hrdlickadavid@outlook.com>
|
||||
# Authors: David Hrdlička, <hrdlickadavid@outlook.com>
|
||||
#
|
||||
# Copyright 2020,2021 David Hrdlička.
|
||||
# Copyright 2020,2021 David Hrdlička.
|
||||
#
|
||||
|
||||
add_library(chipset OBJECT 82c100.c acc2168.c cs8230.c ali1429.c ali1489.c ali1531.c ali1541.c ali1543.c
|
||||
ali1621.c ali6117.c headland.c ims8848.c intel_82335.c contaq_82c59x.c cs4031.c intel_420ex.c
|
||||
intel_4x0.c intel_i450kx.c intel_sio.c intel_piix.c ../ioapic.c neat.c opti283.c opti291.c opti391.c
|
||||
opti495.c opti822.c opti895.c opti5x7.c scamp.c scat.c sis_85c310.c sis_85c4xx.c
|
||||
sis_85c496.c sis_85c50x.c sis_5511.c sis_5571.c via_vt82c49x.c via_vt82c505.c sis_85c310.c
|
||||
sis_85c4xx.c sis_85c496.c sis_85c50x.c gc100.c stpc.c umc_8886.c umc_hb4.c via_apollo.c
|
||||
via_pipc.c vl82c480.c wd76c10.c)
|
||||
ali1621.c ali6117.c headland.c ims8848.c intel_82335.c contaq_82c59x.c cs4031.c intel_420ex.c
|
||||
intel_4x0.c intel_i450kx.c intel_sio.c intel_piix.c ../ioapic.c neat.c opti283.c opti291.c opti391.c
|
||||
opti495.c opti822.c opti895.c opti5x7.c scamp.c scat.c sis_85c310.c sis_85c4xx.c
|
||||
sis_85c496.c sis_85c50x.c sis_5511.c sis_5571.c via_vt82c49x.c via_vt82c505.c sis_85c310.c
|
||||
sis_85c4xx.c sis_85c496.c sis_85c50x.c gc100.c stpc.c umc_8886.c umc_hb4.c via_apollo.c
|
||||
via_pipc.c vl82c480.c wd76c10.c)
|
||||
|
||||
if(OLIVETTI)
|
||||
target_sources(chipset PRIVATE olivetti_eva.c)
|
||||
target_sources(chipset PRIVATE olivetti_eva.c)
|
||||
endif()
|
@ -1,31 +1,31 @@
|
||||
#
|
||||
# 86Box A hypervisor and IBM PC system emulator that specializes in
|
||||
# running old operating systems and software designed for IBM
|
||||
# PC systems and compatibles from 1981 through fairly recent
|
||||
# system designs based on the PCI bus.
|
||||
# 86Box A hypervisor and IBM PC system emulator that specializes in
|
||||
# running old operating systems and software designed for IBM
|
||||
# PC systems and compatibles from 1981 through fairly recent
|
||||
# system designs based on the PCI bus.
|
||||
#
|
||||
# This file is part of the 86Box distribution.
|
||||
# This file is part of the 86Box distribution.
|
||||
#
|
||||
# CMake build script.
|
||||
# CMake build script.
|
||||
#
|
||||
# Authors: David Hrdlička, <hrdlickadavid@outlook.com>
|
||||
# Authors: David Hrdlička, <hrdlickadavid@outlook.com>
|
||||
#
|
||||
# Copyright 2020,2021 David Hrdlička.
|
||||
# Copyright 2020,2021 David Hrdlička.
|
||||
#
|
||||
|
||||
if(DYNAREC)
|
||||
add_library(dynarec OBJECT codegen.c codegen_ops.c)
|
||||
add_library(dynarec OBJECT codegen.c codegen_ops.c)
|
||||
|
||||
if(ARCH STREQUAL "i386")
|
||||
target_sources(dynarec PRIVATE codegen_x86.c
|
||||
codegen_accumulate_x86.c)
|
||||
elseif(ARCH STREQUAL "x86_64")
|
||||
target_sources(dynarec PRIVATE codegen_x86-64.c
|
||||
codegen_accumulate_x86-64.c)
|
||||
else()
|
||||
message(SEND_ERROR
|
||||
"Dynarec is incompatible with target platform ${ARCH}")
|
||||
endif()
|
||||
if(ARCH STREQUAL "i386")
|
||||
target_sources(dynarec PRIVATE codegen_x86.c
|
||||
codegen_accumulate_x86.c)
|
||||
elseif(ARCH STREQUAL "x86_64")
|
||||
target_sources(dynarec PRIVATE codegen_x86-64.c
|
||||
codegen_accumulate_x86-64.c)
|
||||
else()
|
||||
message(SEND_ERROR
|
||||
"Dynarec is incompatible with target platform ${ARCH}")
|
||||
endif()
|
||||
|
||||
target_link_libraries(86Box dynarec cgt)
|
||||
target_link_libraries(86Box dynarec cgt)
|
||||
endif()
|
@ -1,51 +1,51 @@
|
||||
#
|
||||
# 86Box A hypervisor and IBM PC system emulator that specializes in
|
||||
# running old operating systems and software designed for IBM
|
||||
# PC systems and compatibles from 1981 through fairly recent
|
||||
# system designs based on the PCI bus.
|
||||
# 86Box A hypervisor and IBM PC system emulator that specializes in
|
||||
# running old operating systems and software designed for IBM
|
||||
# PC systems and compatibles from 1981 through fairly recent
|
||||
# system designs based on the PCI bus.
|
||||
#
|
||||
# This file is part of the 86Box distribution.
|
||||
# This file is part of the 86Box distribution.
|
||||
#
|
||||
# CMake build script.
|
||||
# CMake build script.
|
||||
#
|
||||
# Authors: David Hrdlička, <hrdlickadavid@outlook.com>
|
||||
# Authors: David Hrdlička, <hrdlickadavid@outlook.com>
|
||||
#
|
||||
# Copyright 2020,2021 David Hrdlička.
|
||||
# Copyright 2020,2021 David Hrdlička.
|
||||
#
|
||||
|
||||
if(DYNAREC)
|
||||
add_library(dynarec OBJECT codegen.c codegen_accumulate.c
|
||||
codegen_allocator.c codegen_block.c codegen_ir.c codegen_ops.c
|
||||
codegen_ops_3dnow.c codegen_ops_branch.c codegen_ops_arith.c
|
||||
codegen_ops_fpu_arith.c codegen_ops_fpu_constant.c
|
||||
codegen_ops_fpu_loadstore.c codegen_ops_fpu_misc.c
|
||||
codegen_ops_helpers.c codegen_ops_jump.c codegen_ops_logic.c
|
||||
codegen_ops_misc.c codegen_ops_mmx_arith.c codegen_ops_mmx_cmp.c
|
||||
codegen_ops_mmx_loadstore.c codegen_ops_mmx_logic.c
|
||||
codegen_ops_mmx_pack.c codegen_ops_mmx_shift.c codegen_ops_mov.c
|
||||
codegen_ops_shift.c codegen_ops_stack.c codegen_reg.c)
|
||||
add_library(dynarec OBJECT codegen.c codegen_accumulate.c
|
||||
codegen_allocator.c codegen_block.c codegen_ir.c codegen_ops.c
|
||||
codegen_ops_3dnow.c codegen_ops_branch.c codegen_ops_arith.c
|
||||
codegen_ops_fpu_arith.c codegen_ops_fpu_constant.c
|
||||
codegen_ops_fpu_loadstore.c codegen_ops_fpu_misc.c
|
||||
codegen_ops_helpers.c codegen_ops_jump.c codegen_ops_logic.c
|
||||
codegen_ops_misc.c codegen_ops_mmx_arith.c codegen_ops_mmx_cmp.c
|
||||
codegen_ops_mmx_loadstore.c codegen_ops_mmx_logic.c
|
||||
codegen_ops_mmx_pack.c codegen_ops_mmx_shift.c codegen_ops_mov.c
|
||||
codegen_ops_shift.c codegen_ops_stack.c codegen_reg.c)
|
||||
|
||||
if(ARCH STREQUAL "i386")
|
||||
target_sources(dynarec PRIVATE codegen_backend_x86.c
|
||||
codegen_backend_x86_ops.c codegen_backend_x86_ops_fpu.c
|
||||
codegen_backend_x86_ops_sse.c
|
||||
codegen_backend_x86_uops.c)
|
||||
elseif(ARCH STREQUAL "x86_64")
|
||||
target_sources(dynarec PRIVATE codegen_backend_x86-64.c
|
||||
codegen_backend_x86-64_ops.c
|
||||
codegen_backend_x86-64_ops_sse.c
|
||||
codegen_backend_x86-64_uops.c)
|
||||
elseif(ARCH STREQUAL "arm64")
|
||||
target_sources(dynarec PRIVATE codegen_backend_arm64.c
|
||||
codegen_backend_arm64_ops.c codegen_backend_arm64_uops.c
|
||||
codegen_backend_arm64_imm.c)
|
||||
elseif(ARCH STREQUAL "arm")
|
||||
target_sources(dynarec PRIVATE codegen_backend_arm.c
|
||||
codegen_backend_arm_ops.c codegen_backend_arm_uops.c)
|
||||
else()
|
||||
message(SEND_ERROR
|
||||
"Dynarec is incompatible with target platform ${ARCH}")
|
||||
endif()
|
||||
if(ARCH STREQUAL "i386")
|
||||
target_sources(dynarec PRIVATE codegen_backend_x86.c
|
||||
codegen_backend_x86_ops.c codegen_backend_x86_ops_fpu.c
|
||||
codegen_backend_x86_ops_sse.c
|
||||
codegen_backend_x86_uops.c)
|
||||
elseif(ARCH STREQUAL "x86_64")
|
||||
target_sources(dynarec PRIVATE codegen_backend_x86-64.c
|
||||
codegen_backend_x86-64_ops.c
|
||||
codegen_backend_x86-64_ops_sse.c
|
||||
codegen_backend_x86-64_uops.c)
|
||||
elseif(ARCH STREQUAL "arm64")
|
||||
target_sources(dynarec PRIVATE codegen_backend_arm64.c
|
||||
codegen_backend_arm64_ops.c codegen_backend_arm64_uops.c
|
||||
codegen_backend_arm64_imm.c)
|
||||
elseif(ARCH STREQUAL "arm")
|
||||
target_sources(dynarec PRIVATE codegen_backend_arm.c
|
||||
codegen_backend_arm_ops.c codegen_backend_arm_uops.c)
|
||||
else()
|
||||
message(SEND_ERROR
|
||||
"Dynarec is incompatible with target platform ${ARCH}")
|
||||
endif()
|
||||
|
||||
target_link_libraries(86Box dynarec cgt)
|
||||
target_link_libraries(86Box dynarec cgt)
|
||||
endif()
|
@ -1,32 +1,32 @@
|
||||
#
|
||||
# 86Box A hypervisor and IBM PC system emulator that specializes in
|
||||
# running old operating systems and software designed for IBM
|
||||
# PC systems and compatibles from 1981 through fairly recent
|
||||
# system designs based on the PCI bus.
|
||||
# 86Box A hypervisor and IBM PC system emulator that specializes in
|
||||
# running old operating systems and software designed for IBM
|
||||
# PC systems and compatibles from 1981 through fairly recent
|
||||
# system designs based on the PCI bus.
|
||||
#
|
||||
# This file is part of the 86Box distribution.
|
||||
# This file is part of the 86Box distribution.
|
||||
#
|
||||
# CMake build script.
|
||||
# CMake build script.
|
||||
#
|
||||
# Authors: David Hrdlička, <hrdlickadavid@outlook.com>
|
||||
# Authors: David Hrdlička, <hrdlickadavid@outlook.com>
|
||||
#
|
||||
# Copyright 2020,2021 David Hrdlička.
|
||||
# Copyright 2020,2021 David Hrdlička.
|
||||
#
|
||||
|
||||
add_library(cpu OBJECT cpu.c cpu_table.c fpu.c x86.c 808x.c 386.c 386_common.c 386_dynarec.c
|
||||
386_dynarec_ops.c x86seg.c x87.c x87_timings.c)
|
||||
386_dynarec_ops.c x86seg.c x87.c x87_timings.c)
|
||||
|
||||
if(AMD_K5)
|
||||
target_compile_definitions(cpu PRIVATE USE_AMD_K5)
|
||||
target_compile_definitions(cpu PRIVATE USE_AMD_K5)
|
||||
endif()
|
||||
|
||||
if(CYRIX_6X86)
|
||||
target_compile_definitions(cpu PRIVATE USE_CYRIX_6X86)
|
||||
target_compile_definitions(cpu PRIVATE USE_CYRIX_6X86)
|
||||
endif()
|
||||
|
||||
if(DYNAREC)
|
||||
add_library(cgt OBJECT codegen_timing_486.c codegen_timing_686.c
|
||||
codegen_timing_common.c codegen_timing_k6.c
|
||||
codegen_timing_pentium.c codegen_timing_p6.c
|
||||
codegen_timing_winchip.c codegen_timing_winchip2.c)
|
||||
add_library(cgt OBJECT codegen_timing_486.c codegen_timing_686.c
|
||||
codegen_timing_common.c codegen_timing_k6.c
|
||||
codegen_timing_pentium.c codegen_timing_p6.c
|
||||
codegen_timing_winchip.c codegen_timing_winchip2.c)
|
||||
endif()
|
@ -1,24 +1,24 @@
|
||||
#
|
||||
# 86Box A hypervisor and IBM PC system emulator that specializes in
|
||||
# running old operating systems and software designed for IBM
|
||||
# PC systems and compatibles from 1981 through fairly recent
|
||||
# system designs based on the PCI bus.
|
||||
# 86Box A hypervisor and IBM PC system emulator that specializes in
|
||||
# running old operating systems and software designed for IBM
|
||||
# PC systems and compatibles from 1981 through fairly recent
|
||||
# system designs based on the PCI bus.
|
||||
#
|
||||
# This file is part of the 86Box distribution.
|
||||
# This file is part of the 86Box distribution.
|
||||
#
|
||||
# CMake build script.
|
||||
# CMake build script.
|
||||
#
|
||||
# Authors: David Hrdlička, <hrdlickadavid@outlook.com>
|
||||
# Authors: David Hrdlička, <hrdlickadavid@outlook.com>
|
||||
#
|
||||
# Copyright 2020,2021 David Hrdlička.
|
||||
# Copyright 2020,2021 David Hrdlička.
|
||||
#
|
||||
|
||||
add_library(dev OBJECT bugger.c cassette.c cartridge.c hasp.c hwm.c hwm_lm75.c hwm_lm78.c hwm_gl518sm.c
|
||||
hwm_vt82c686.c ibm_5161.c isamem.c isartc.c ../lpt.c pci_bridge.c
|
||||
postcard.c serial.c clock_ics9xxx.c isapnp.c i2c.c i2c_gpio.c
|
||||
smbus_piix4.c smbus_ali7101.c keyboard.c keyboard_xt.c keyboard_at.c
|
||||
mouse.c mouse_bus.c mouse_serial.c mouse_ps2.c phoenix_486_jumper.c)
|
||||
hwm_vt82c686.c ibm_5161.c isamem.c isartc.c ../lpt.c pci_bridge.c
|
||||
postcard.c serial.c clock_ics9xxx.c isapnp.c i2c.c i2c_gpio.c
|
||||
smbus_piix4.c smbus_ali7101.c keyboard.c keyboard_xt.c keyboard_at.c
|
||||
mouse.c mouse_bus.c mouse_serial.c mouse_ps2.c phoenix_486_jumper.c)
|
||||
|
||||
if(LASERXT)
|
||||
target_compile_definitions(dev PRIVATE USE_LASERXT)
|
||||
target_compile_definitions(dev PRIVATE USE_LASERXT)
|
||||
endif()
|
@ -1,21 +1,21 @@
|
||||
#
|
||||
# 86Box A hypervisor and IBM PC system emulator that specializes in
|
||||
# running old operating systems and software designed for IBM
|
||||
# PC systems and compatibles from 1981 through fairly recent
|
||||
# system designs based on the PCI bus.
|
||||
# 86Box A hypervisor and IBM PC system emulator that specializes in
|
||||
# running old operating systems and software designed for IBM
|
||||
# PC systems and compatibles from 1981 through fairly recent
|
||||
# system designs based on the PCI bus.
|
||||
#
|
||||
# This file is part of the 86Box distribution.
|
||||
# This file is part of the 86Box distribution.
|
||||
#
|
||||
# CMake build script.
|
||||
# CMake build script.
|
||||
#
|
||||
# Authors: David Hrdlička, <hrdlickadavid@outlook.com>
|
||||
# Authors: David Hrdlička, <hrdlickadavid@outlook.com>
|
||||
#
|
||||
# Copyright 2020,2021 David Hrdlička.
|
||||
# Copyright 2020,2021 David Hrdlička.
|
||||
#
|
||||
|
||||
add_library(hdd OBJECT hdd.c hdd_image.c hdd_table.c hdc.c hdc_st506_xt.c
|
||||
hdc_st506_at.c hdc_xta.c hdc_esdi_at.c hdc_esdi_mca.c hdc_xtide.c
|
||||
hdc_ide.c hdc_ide_opti611.c hdc_ide_cmd640.c hdc_ide_cmd646.c hdc_ide_sff8038i.c)
|
||||
hdc_st506_at.c hdc_xta.c hdc_esdi_at.c hdc_esdi_mca.c hdc_xtide.c
|
||||
hdc_ide.c hdc_ide_opti611.c hdc_ide_cmd640.c hdc_ide_cmd646.c hdc_ide_sff8038i.c)
|
||||
|
||||
add_library(zip OBJECT zip.c)
|
||||
|
||||
|
@ -1,18 +1,18 @@
|
||||
#
|
||||
# 86Box A hypervisor and IBM PC system emulator that specializes in
|
||||
# running old operating systems and software designed for IBM
|
||||
# PC systems and compatibles from 1981 through fairly recent
|
||||
# system designs based on the PCI bus.
|
||||
# 86Box A hypervisor and IBM PC system emulator that specializes in
|
||||
# running old operating systems and software designed for IBM
|
||||
# PC systems and compatibles from 1981 through fairly recent
|
||||
# system designs based on the PCI bus.
|
||||
#
|
||||
# This file is part of the 86Box distribution.
|
||||
# This file is part of the 86Box distribution.
|
||||
#
|
||||
# CMake build script.
|
||||
# CMake build script.
|
||||
#
|
||||
# Authors: David Hrdlička, <hrdlickadavid@outlook.com>
|
||||
# Authors: David Hrdlička, <hrdlickadavid@outlook.com>
|
||||
#
|
||||
# Copyright 2020,2021 David Hrdlička.
|
||||
# Copyright 2020,2021 David Hrdlička.
|
||||
#
|
||||
|
||||
add_library(minivhd STATIC cwalk.c libxml2_encoding.c minivhd_convert.c
|
||||
minivhd_create.c minivhd_io.c minivhd_manage.c minivhd_struct_rw.c
|
||||
minivhd_util.c)
|
||||
minivhd_create.c minivhd_io.c minivhd_manage.c minivhd_struct_rw.c
|
||||
minivhd_util.c)
|
@ -1,17 +1,17 @@
|
||||
#
|
||||
# 86Box A hypervisor and IBM PC system emulator that specializes in
|
||||
# running old operating systems and software designed for IBM
|
||||
# PC systems and compatibles from 1981 through fairly recent
|
||||
# system designs based on the PCI bus.
|
||||
# 86Box A hypervisor and IBM PC system emulator that specializes in
|
||||
# running old operating systems and software designed for IBM
|
||||
# PC systems and compatibles from 1981 through fairly recent
|
||||
# system designs based on the PCI bus.
|
||||
#
|
||||
# This file is part of the 86Box distribution.
|
||||
# This file is part of the 86Box distribution.
|
||||
#
|
||||
# CMake build script.
|
||||
# CMake build script.
|
||||
#
|
||||
# Authors: David Hrdlička, <hrdlickadavid@outlook.com>
|
||||
# Authors: David Hrdlička, <hrdlickadavid@outlook.com>
|
||||
#
|
||||
# Copyright 2020,2021 David Hrdlička.
|
||||
# Copyright 2020,2021 David Hrdlička.
|
||||
#
|
||||
|
||||
add_library(fdd OBJECT fdd.c fdc.c fdc_magitronic.c fdc_pii15xb.c fdi2raw.c fdd_common.c
|
||||
fdd_86f.c fdd_fdi.c fdd_imd.c fdd_img.c fdd_json.c fdd_mfm.c fdd_td0.c)
|
||||
fdd_86f.c fdd_fdi.c fdd_imd.c fdd_img.c fdd_json.c fdd_mfm.c fdd_td0.c)
|
@ -1,17 +1,17 @@
|
||||
#
|
||||
# 86Box A hypervisor and IBM PC system emulator that specializes in
|
||||
# running old operating systems and software designed for IBM
|
||||
# PC systems and compatibles from 1981 through fairly recent
|
||||
# system designs based on the PCI bus.
|
||||
# 86Box A hypervisor and IBM PC system emulator that specializes in
|
||||
# running old operating systems and software designed for IBM
|
||||
# PC systems and compatibles from 1981 through fairly recent
|
||||
# system designs based on the PCI bus.
|
||||
#
|
||||
# This file is part of the 86Box distribution.
|
||||
# This file is part of the 86Box distribution.
|
||||
#
|
||||
# CMake build script.
|
||||
# CMake build script.
|
||||
#
|
||||
# Authors: David Hrdlička, <hrdlickadavid@outlook.com>
|
||||
# Authors: David Hrdlička, <hrdlickadavid@outlook.com>
|
||||
#
|
||||
# Copyright 2020,2021 David Hrdlička.
|
||||
# Copyright 2020,2021 David Hrdlička.
|
||||
#
|
||||
|
||||
add_library(game OBJECT gameport.c joystick_standard.c
|
||||
joystick_ch_flightstick_pro.c joystick_sw_pad.c joystick_tm_fcs.c)
|
||||
joystick_ch_flightstick_pro.c joystick_sw_pad.c joystick_tm_fcs.c)
|
@ -80,16 +80,18 @@ static const struct {
|
||||
const char *internal_name;
|
||||
const joystick_if_t *joystick;
|
||||
} joysticks[] = {
|
||||
{ "none", &joystick_none },
|
||||
{ "standard_2button", &joystick_standard },
|
||||
{ "standard_4button", &joystick_standard_4button },
|
||||
{ "standard_6button", &joystick_standard_6button },
|
||||
{ "standard_8button", &joystick_standard_8button },
|
||||
{ "4axis_4button", &joystick_4axis_4button },
|
||||
{ "none", &joystick_none },
|
||||
{ "2axis_2button", &joystick_2axis_2button },
|
||||
{ "2axis_4button", &joystick_2axis_4button },
|
||||
{ "2axis_6button", &joystick_2axis_6button },
|
||||
{ "2axis_8button", &joystick_2axis_8button },
|
||||
{ "3axis_2button", &joystick_3axis_2button },
|
||||
{ "3axis_4button", &joystick_3axis_4button },
|
||||
{ "4axis_4button", &joystick_4axis_4button },
|
||||
{ "ch_flighstick_pro", &joystick_ch_flightstick_pro },
|
||||
{ "sidewinder_pad", &joystick_sw_pad },
|
||||
{ "thrustmaster_fcs", &joystick_tm_fcs },
|
||||
{ "", NULL }
|
||||
{ "", NULL }
|
||||
};
|
||||
static joystick_instance_t *joystick_instance = NULL;
|
||||
|
||||
@ -452,6 +454,15 @@ const device_t gameport_201_device = {
|
||||
NULL
|
||||
};
|
||||
|
||||
const device_t gameport_208_device = {
|
||||
"Game port (Port 208h-20fh)",
|
||||
0, 0x080208,
|
||||
gameport_init,
|
||||
gameport_close,
|
||||
NULL, { NULL }, NULL,
|
||||
NULL
|
||||
};
|
||||
|
||||
const device_t gameport_pnp_device = {
|
||||
"Game port (Plug and Play only)",
|
||||
0, 0x080000,
|
||||
|
@ -145,6 +145,26 @@ static int joystick_standard_read_axis_4button(void *p, int axis)
|
||||
}
|
||||
}
|
||||
|
||||
static int joystick_standard_read_axis_3axis(void *p, int axis)
|
||||
{
|
||||
if (!JOYSTICK_PRESENT(0))
|
||||
return AXIS_NOT_PRESENT;
|
||||
|
||||
switch (axis)
|
||||
{
|
||||
case 0:
|
||||
return joystick_state[0].axis[0];
|
||||
case 1:
|
||||
return joystick_state[0].axis[1];
|
||||
case 2:
|
||||
return joystick_state[0].axis[2];
|
||||
case 3:
|
||||
return 0;
|
||||
default:
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
||||
static int joystick_standard_read_axis_4axis(void *p, int axis)
|
||||
{
|
||||
if (!JOYSTICK_PRESENT(0))
|
||||
@ -216,9 +236,9 @@ static void joystick_standard_a0_over(void *p)
|
||||
{
|
||||
}
|
||||
|
||||
const joystick_if_t joystick_standard =
|
||||
const joystick_if_t joystick_2axis_2button =
|
||||
{
|
||||
"Standard 2-button joystick(s)",
|
||||
"2-axis, 2-button joystick(s)",
|
||||
joystick_standard_init,
|
||||
joystick_standard_close,
|
||||
joystick_standard_read,
|
||||
@ -232,9 +252,9 @@ const joystick_if_t joystick_standard =
|
||||
{"X axis", "Y axis"},
|
||||
{"Button 1", "Button 2"}
|
||||
};
|
||||
const joystick_if_t joystick_standard_4button =
|
||||
const joystick_if_t joystick_2axis_4button =
|
||||
{
|
||||
"Standard 4-button joystick",
|
||||
"2-axis, 4-button joystick",
|
||||
joystick_standard_init,
|
||||
joystick_standard_close,
|
||||
joystick_standard_read_4button,
|
||||
@ -248,9 +268,41 @@ const joystick_if_t joystick_standard_4button =
|
||||
{"X axis", "Y axis"},
|
||||
{"Button 1", "Button 2", "Button 3", "Button 4"}
|
||||
};
|
||||
const joystick_if_t joystick_3axis_2button =
|
||||
{
|
||||
"3-axis, 2-button joystick",
|
||||
joystick_standard_init,
|
||||
joystick_standard_close,
|
||||
joystick_standard_read,
|
||||
joystick_standard_write,
|
||||
joystick_standard_read_axis_3axis,
|
||||
joystick_standard_a0_over,
|
||||
3,
|
||||
2,
|
||||
0,
|
||||
1,
|
||||
{"X axis", "Y axis", "Z axis"},
|
||||
{"Button 1", "Button 2"}
|
||||
};
|
||||
const joystick_if_t joystick_3axis_4button =
|
||||
{
|
||||
"3-axis, 4-button joystick",
|
||||
joystick_standard_init,
|
||||
joystick_standard_close,
|
||||
joystick_standard_read_4button,
|
||||
joystick_standard_write,
|
||||
joystick_standard_read_axis_3axis,
|
||||
joystick_standard_a0_over,
|
||||
3,
|
||||
4,
|
||||
0,
|
||||
1,
|
||||
{"X axis", "Y axis", "Z axis"},
|
||||
{"Button 1", "Button 2", "Button 3", "Button 4"}
|
||||
};
|
||||
const joystick_if_t joystick_4axis_4button =
|
||||
{
|
||||
"4-axis 4-button joystick",
|
||||
"4-axis, 4-button joystick",
|
||||
joystick_standard_init,
|
||||
joystick_standard_close,
|
||||
joystick_standard_read_4button,
|
||||
@ -264,9 +316,9 @@ const joystick_if_t joystick_4axis_4button =
|
||||
{"X axis", "Y axis", "Z axis", "zX axis"},
|
||||
{"Button 1", "Button 2", "Button 3", "Button 4"}
|
||||
};
|
||||
const joystick_if_t joystick_standard_6button =
|
||||
const joystick_if_t joystick_2axis_6button =
|
||||
{
|
||||
"Standard 6-button joystick",
|
||||
"2-axis, 6-button joystick",
|
||||
joystick_standard_init,
|
||||
joystick_standard_close,
|
||||
joystick_standard_read_4button,
|
||||
@ -280,9 +332,9 @@ const joystick_if_t joystick_standard_6button =
|
||||
{"X axis", "Y axis"},
|
||||
{"Button 1", "Button 2", "Button 3", "Button 4", "Button 5", "Button 6"}
|
||||
};
|
||||
const joystick_if_t joystick_standard_8button =
|
||||
const joystick_if_t joystick_2axis_8button =
|
||||
{
|
||||
"Standard 8-button joystick",
|
||||
"2-axis, 8-button joystick",
|
||||
joystick_standard_init,
|
||||
joystick_standard_close,
|
||||
joystick_standard_read_4button,
|
||||
|
@ -15,7 +15,7 @@
|
||||
* connected
|
||||
* - Packet preceeded by high data (currently 50us), and
|
||||
* followed by low data (currently 160us) - timings are
|
||||
* probably wrong, but good enoughfor everything I've tried
|
||||
* probably wrong, but good enough for everything I've tried
|
||||
* - Analog inputs are only used to time ID packet request.
|
||||
* If A0 timing out is followed after ~64us by another 0x201
|
||||
* write then an ID packet is triggered
|
||||
@ -259,7 +259,7 @@ static void sw_a0_over(void *p)
|
||||
{
|
||||
sw_data *sw = (sw_data *)p;
|
||||
|
||||
timer_set_delay_u64(&sw->trigger_timer, TIMER_USEC * 10000);
|
||||
timer_set_delay_u64(&sw->trigger_timer, TIMER_USEC * 10000);
|
||||
}
|
||||
|
||||
const joystick_if_t joystick_sw_pad =
|
||||
@ -273,7 +273,7 @@ const joystick_if_t joystick_sw_pad =
|
||||
sw_a0_over,
|
||||
2,
|
||||
10,
|
||||
0,
|
||||
0,
|
||||
4,
|
||||
{"X axis", "Y axis"},
|
||||
{"A", "B", "C", "X", "Y", "Z", "L", "R", "Start", "M"}
|
||||
|
@ -108,6 +108,7 @@ extern "C" {
|
||||
#ifdef EMU_DEVICE_H
|
||||
extern const device_t gameport_device;
|
||||
extern const device_t gameport_201_device;
|
||||
extern const device_t gameport_208_device;
|
||||
extern const device_t gameport_pnp_device;
|
||||
extern const device_t gameport_pnp_6io_device;
|
||||
extern const device_t gameport_sio_device;
|
||||
|
@ -35,8 +35,10 @@
|
||||
* USA.
|
||||
*/
|
||||
|
||||
extern const joystick_if_t joystick_standard;
|
||||
extern const joystick_if_t joystick_standard_4button;
|
||||
extern const joystick_if_t joystick_2axis_2button;
|
||||
extern const joystick_if_t joystick_2axis_4button;
|
||||
extern const joystick_if_t joystick_3axis_2button;
|
||||
extern const joystick_if_t joystick_3axis_4button;
|
||||
extern const joystick_if_t joystick_4axis_4button;
|
||||
extern const joystick_if_t joystick_standard_6button;
|
||||
extern const joystick_if_t joystick_standard_8button;
|
||||
extern const joystick_if_t joystick_2axis_6button;
|
||||
extern const joystick_if_t joystick_2axis_8button;
|
||||
|
@ -1,3 +1,53 @@
|
||||
include_directories("./mac")
|
||||
target_sources(86Box PUBLIC "./macOSXGlue.m")
|
||||
#
|
||||
# 86Box A hypervisor and IBM PC system emulator that specializes in
|
||||
# running old operating systems and software designed for IBM
|
||||
# PC systems and compatibles from 1981 through fairly recent
|
||||
# system designs based on the PCI bus.
|
||||
#
|
||||
# This file is part of the 86Box distribution.
|
||||
#
|
||||
# CMake build script.
|
||||
#
|
||||
# Authors: dob205,
|
||||
# Jerome Vernet
|
||||
# David Hrdlička, <hrdlickadavid@outlook.com>
|
||||
#
|
||||
# Copyright 2021 dob205.
|
||||
# Copyright 2021 Jerome Vernet.
|
||||
# Copyright 2021 David Hrdlička.
|
||||
#
|
||||
|
||||
# Pick the bundle icon depending on the release channel
|
||||
if(RELEASE_BUILD)
|
||||
set(APP_ICON_MACOSX icons/release/86Box.icns)
|
||||
elseif(BETA_BUILD)
|
||||
set(APP_ICON_MACOSX icons/beta/86Box.icns)
|
||||
elseif(ALPHA_BUILD)
|
||||
set(APP_ICON_MACOSX icons/dev/86Box.icns)
|
||||
else()
|
||||
set(APP_ICON_MACOSX icons/branch/86Box.icns)
|
||||
endif()
|
||||
|
||||
target_link_libraries(86Box "-framework AppKit")
|
||||
target_sources(86Box PRIVATE macOSXGlue.m ${APP_ICON_MACOSX})
|
||||
|
||||
# Make sure the icon is copied to the bundle
|
||||
set_source_files_properties(${APP_ICON_MACOSX}
|
||||
TARGET_DIRECTORY 86Box
|
||||
PROPERTIES MACOSX_PACKAGE_LOCATION "Resources")
|
||||
|
||||
# Prepare long version string
|
||||
if(EMU_BUILD)
|
||||
set(LONG_VER_STRING "${CMAKE_PROJECT_VERSION} [${EMU_BUILD}]")
|
||||
else()
|
||||
set(LONG_VER_STRING "${CMAKE_PROJECT_VERSION}")
|
||||
endif()
|
||||
|
||||
# Generate Info.plist
|
||||
configure_file(Info.plist.in Info.plist @ONLY)
|
||||
set_target_properties(86Box
|
||||
PROPERTIES MACOSX_BUNDLE_INFO_PLIST ${CMAKE_CURRENT_BINARY_DIR}/Info.plist)
|
||||
|
||||
#set(XCODE_ATTRIBUTE_CODE_SIGNING_REQUIRED "YES")
|
||||
#set(XCODE_ATTRIBUTE_CODE_SIGN_IDENTITY "-")
|
||||
#set(XCODE_ATTRIBUTE_CODE_SIGN_ENTITLEMENTS ${CMAKE_CURRENT_SOURCE_DIR}/mac/codesign/dev/app.entitlements)
|
@ -7,29 +7,29 @@
|
||||
<key>CFBundleExecutable</key>
|
||||
<string>${MACOSX_BUNDLE_EXECUTABLE_NAME}</string>
|
||||
<key>CFBundleGetInfoString</key>
|
||||
<string>${MACOSX_BUNDLE_INFO_STRING}</string>
|
||||
<string>An emulator of old computers</string>
|
||||
<key>CFBundleIconFile</key>
|
||||
<string>${MACOSX_BUNDLE_ICON_FILE}</string>
|
||||
<string>86Box.icns</string>
|
||||
<key>CFBundleIdentifier</key>
|
||||
<string>${MACOSX_BUNDLE_GUI_IDENTIFIER}</string>
|
||||
<string>net.86Box.86Box</string>
|
||||
<key>CFBundleInfoDictionaryVersion</key>
|
||||
<string>6.0</string>
|
||||
<key>CFBundleLongVersionString</key>
|
||||
<string>${MACOSX_BUNDLE_LONG_VERSION_STRING}</string>
|
||||
<string>@LONG_VER_STRING@</string>
|
||||
<key>CFBundleName</key>
|
||||
<string>${MACOSX_BUNDLE_BUNDLE_NAME}</string>
|
||||
<string>86Box</string>
|
||||
<key>CFBundlePackageType</key>
|
||||
<string>APPL</string>
|
||||
<key>CFBundleShortVersionString</key>
|
||||
<string>${MACOSX_BUNDLE_SHORT_VERSION_STRING}</string>
|
||||
<string>@CMAKE_PROJECT_VERSION@</string>
|
||||
<key>CFBundleSignature</key>
|
||||
<string>????</string>
|
||||
<key>CFBundleVersion</key>
|
||||
<string>${MACOSX_BUNDLE_BUNDLE_VERSION}</string>
|
||||
<string>@CMAKE_PROJECT_VERSION_MAJOR@.@CMAKE_PROJECT_VERSION_MINOR@.@CMAKE_PROJECT_VERSION_PATCH@.@EMU_BUILD_NUM@</string>
|
||||
<key>CSResourcesFileMapped</key>
|
||||
<true/>
|
||||
<key>NSHumanReadableCopyright</key>
|
||||
<string>${MACOSX_BUNDLE_COPYRIGHT}</string>
|
||||
<string>© 2007-@EMU_COPYRIGHT_YEAR@ 86Box contributors</string>
|
||||
<key>NSPrincipalClass</key>
|
||||
<string>NSApplication</string>
|
||||
<key>NSHighResolutionCapable</key>
|
||||
|
@ -1,42 +1,42 @@
|
||||
#
|
||||
# 86Box A hypervisor and IBM PC system emulator that specializes in
|
||||
# running old operating systems and software designed for IBM
|
||||
# PC systems and compatibles from 1981 through fairly recent
|
||||
# system designs based on the PCI bus.
|
||||
# 86Box A hypervisor and IBM PC system emulator that specializes in
|
||||
# running old operating systems and software designed for IBM
|
||||
# PC systems and compatibles from 1981 through fairly recent
|
||||
# system designs based on the PCI bus.
|
||||
#
|
||||
# This file is part of the 86Box distribution.
|
||||
# This file is part of the 86Box distribution.
|
||||
#
|
||||
# CMake build script.
|
||||
# CMake build script.
|
||||
#
|
||||
# Authors: David Hrdlička, <hrdlickadavid@outlook.com>
|
||||
# Authors: David Hrdlička, <hrdlickadavid@outlook.com>
|
||||
#
|
||||
# Copyright 2020,2021 David Hrdlička.
|
||||
# Copyright 2020,2021 David Hrdlička.
|
||||
#
|
||||
|
||||
add_library(mch OBJECT machine.c machine_table.c m_xt.c m_xt_compaq.c
|
||||
m_xt_philips.c
|
||||
m_xt_t1000.c m_xt_t1000_vid.c m_xt_xi8088.c m_xt_zenith.c m_pcjr.c
|
||||
m_amstrad.c m_europc.c m_xt_olivetti.c m_tandy.c m_v86p.c
|
||||
m_at.c m_at_commodore.c
|
||||
m_at_t3100e.c m_at_t3100e_vid.c m_ps1.c m_ps1_hdc.c m_ps2_isa.c
|
||||
m_ps2_mca.c m_at_compaq.c m_at_286_386sx.c m_at_386dx_486.c
|
||||
m_at_socket4.c m_at_socket5.c m_at_socket7_3v.c m_at_socket7.c
|
||||
m_at_sockets7.c m_at_socket8.c m_at_slot1.c m_at_slot2.c m_at_socket370.c
|
||||
m_at_misc.c)
|
||||
m_xt_philips.c
|
||||
m_xt_t1000.c m_xt_t1000_vid.c m_xt_xi8088.c m_xt_zenith.c m_pcjr.c
|
||||
m_amstrad.c m_europc.c m_xt_olivetti.c m_tandy.c m_v86p.c
|
||||
m_at.c m_at_commodore.c
|
||||
m_at_t3100e.c m_at_t3100e_vid.c m_ps1.c m_ps1_hdc.c m_ps2_isa.c
|
||||
m_ps2_mca.c m_at_compaq.c m_at_286_386sx.c m_at_386dx_486.c
|
||||
m_at_socket4.c m_at_socket5.c m_at_socket7_3v.c m_at_socket7.c
|
||||
m_at_sockets7.c m_at_socket8.c m_at_slot1.c m_at_slot2.c m_at_socket370.c
|
||||
m_at_misc.c)
|
||||
|
||||
if(LASERXT)
|
||||
target_sources(mch PRIVATE m_xt_laserxt.c)
|
||||
target_compile_definitions(mch PRIVATE USE_LASERXT)
|
||||
target_sources(mch PRIVATE m_xt_laserxt.c)
|
||||
target_compile_definitions(mch PRIVATE USE_LASERXT)
|
||||
endif()
|
||||
|
||||
if(NO_SIO)
|
||||
target_compile_definitions(mch PRIVATE NO_SIO)
|
||||
target_compile_definitions(mch PRIVATE NO_SIO)
|
||||
endif()
|
||||
|
||||
if(OPEN_AT)
|
||||
target_compile_definitions(mch PRIVATE USE_OPEN_AT)
|
||||
target_compile_definitions(mch PRIVATE USE_OPEN_AT)
|
||||
endif()
|
||||
|
||||
if(M154X)
|
||||
target_compile_definitions(mch PRIVATE USE_M154X)
|
||||
target_compile_definitions(mch PRIVATE USE_M154X)
|
||||
endif()
|
@ -1,17 +1,17 @@
|
||||
#
|
||||
# 86Box A hypervisor and IBM PC system emulator that specializes in
|
||||
# running old operating systems and software designed for IBM
|
||||
# PC systems and compatibles from 1981 through fairly recent
|
||||
# system designs based on the PCI bus.
|
||||
# 86Box A hypervisor and IBM PC system emulator that specializes in
|
||||
# running old operating systems and software designed for IBM
|
||||
# PC systems and compatibles from 1981 through fairly recent
|
||||
# system designs based on the PCI bus.
|
||||
#
|
||||
# This file is part of the 86Box distribution.
|
||||
# This file is part of the 86Box distribution.
|
||||
#
|
||||
# CMake build script.
|
||||
# CMake build script.
|
||||
#
|
||||
# Authors: David Hrdlička, <hrdlickadavid@outlook.com>
|
||||
# Authors: David Hrdlička, <hrdlickadavid@outlook.com>
|
||||
#
|
||||
# Copyright 2020,2021 David Hrdlička.
|
||||
# Copyright 2020,2021 David Hrdlička.
|
||||
#
|
||||
|
||||
add_library(mem OBJECT catalyst_flash.c i2c_eeprom.c intel_flash.c mem.c rom.c
|
||||
smram.c spd.c sst_flash.c)
|
||||
smram.c spd.c sst_flash.c)
|
@ -1,20 +1,20 @@
|
||||
#
|
||||
# 86Box A hypervisor and IBM PC system emulator that specializes in
|
||||
# running old operating systems and software designed for IBM
|
||||
# PC systems and compatibles from 1981 through fairly recent
|
||||
# system designs based on the PCI bus.
|
||||
# 86Box A hypervisor and IBM PC system emulator that specializes in
|
||||
# running old operating systems and software designed for IBM
|
||||
# PC systems and compatibles from 1981 through fairly recent
|
||||
# system designs based on the PCI bus.
|
||||
#
|
||||
# This file is part of the 86Box distribution.
|
||||
# This file is part of the 86Box distribution.
|
||||
#
|
||||
# CMake build script.
|
||||
# CMake build script.
|
||||
#
|
||||
# Authors: David Hrdlička, <hrdlickadavid@outlook.com>
|
||||
# Authors: David Hrdlička, <hrdlickadavid@outlook.com>
|
||||
#
|
||||
# Copyright 2020,2021 David Hrdlička.
|
||||
# Copyright 2020,2021 David Hrdlička.
|
||||
#
|
||||
|
||||
add_library(net OBJECT network.c net_pcap.c net_slirp.c net_dp8390.c net_3c503.c
|
||||
net_ne2000.c net_pcnet.c net_wd8003.c net_plip.c)
|
||||
net_ne2000.c net_pcnet.c net_wd8003.c net_plip.c)
|
||||
|
||||
add_subdirectory(slirp)
|
||||
target_link_libraries(86Box slirp)
|
@ -1,16 +1,16 @@
|
||||
#
|
||||
# 86Box A hypervisor and IBM PC system emulator that specializes in
|
||||
# running old operating systems and software designed for IBM
|
||||
# PC systems and compatibles from 1981 through fairly recent
|
||||
# system designs based on the PCI bus.
|
||||
# 86Box A hypervisor and IBM PC system emulator that specializes in
|
||||
# running old operating systems and software designed for IBM
|
||||
# PC systems and compatibles from 1981 through fairly recent
|
||||
# system designs based on the PCI bus.
|
||||
#
|
||||
# This file is part of the 86Box distribution.
|
||||
# This file is part of the 86Box distribution.
|
||||
#
|
||||
# CMake build script.
|
||||
# CMake build script.
|
||||
#
|
||||
# Authors: David Hrdlička, <hrdlickadavid@outlook.com>
|
||||
# Authors: David Hrdlička, <hrdlickadavid@outlook.com>
|
||||
#
|
||||
# Copyright 2020,2021 David Hrdlička.
|
||||
# Copyright 2020,2021 David Hrdlička.
|
||||
#
|
||||
|
||||
add_library(slirp STATIC arp_table.c bootp.c cksum.c dnssearch.c if.c ip_icmp.c
|
||||
|
@ -1,16 +1,16 @@
|
||||
#
|
||||
# 86Box A hypervisor and IBM PC system emulator that specializes in
|
||||
# running old operating systems and software designed for IBM
|
||||
# PC systems and compatibles from 1981 through fairly recent
|
||||
# system designs based on the PCI bus.
|
||||
# 86Box A hypervisor and IBM PC system emulator that specializes in
|
||||
# running old operating systems and software designed for IBM
|
||||
# PC systems and compatibles from 1981 through fairly recent
|
||||
# system designs based on the PCI bus.
|
||||
#
|
||||
# This file is part of the 86Box distribution.
|
||||
# This file is part of the 86Box distribution.
|
||||
#
|
||||
# CMake build script.
|
||||
# CMake build script.
|
||||
#
|
||||
# Authors: David Hrdlička, <hrdlickadavid@outlook.com>
|
||||
# Authors: David Hrdlička, <hrdlickadavid@outlook.com>
|
||||
#
|
||||
# Copyright 2020,2021 David Hrdlička.
|
||||
# Copyright 2020,2021 David Hrdlička.
|
||||
#
|
||||
|
||||
add_library(print OBJECT png.c prt_cpmap.c prt_escp.c prt_text.c prt_ps.c)
|
@ -1,18 +1,18 @@
|
||||
#
|
||||
# 86Box A hypervisor and IBM PC system emulator that specializes in
|
||||
# running old operating systems and software designed for IBM
|
||||
# PC systems and compatibles from 1981 through fairly recent
|
||||
# system designs based on the PCI bus.
|
||||
# 86Box A hypervisor and IBM PC system emulator that specializes in
|
||||
# running old operating systems and software designed for IBM
|
||||
# PC systems and compatibles from 1981 through fairly recent
|
||||
# system designs based on the PCI bus.
|
||||
#
|
||||
# This file is part of the 86Box distribution.
|
||||
# This file is part of the 86Box distribution.
|
||||
#
|
||||
# CMake build script.
|
||||
# CMake build script.
|
||||
#
|
||||
# Authors: David Hrdlička, <hrdlickadavid@outlook.com>
|
||||
# Authors: David Hrdlička, <hrdlickadavid@outlook.com>
|
||||
#
|
||||
# Copyright 2020,2021 David Hrdlička.
|
||||
# Copyright 2020,2021 David Hrdlička.
|
||||
#
|
||||
|
||||
add_library(scsi OBJECT scsi.c scsi_device.c scsi_cdrom.c scsi_disk.c
|
||||
scsi_x54x.c scsi_aha154x.c scsi_buslogic.c scsi_ncr5380.c
|
||||
scsi_ncr53c8xx.c scsi_pcscsi.c scsi_spock.c)
|
||||
scsi_x54x.c scsi_aha154x.c scsi_buslogic.c scsi_ncr5380.c
|
||||
scsi_ncr53c8xx.c scsi_pcscsi.c scsi_spock.c)
|
@ -1,26 +1,26 @@
|
||||
#
|
||||
# 86Box A hypervisor and IBM PC system emulator that specializes in
|
||||
# running old operating systems and software designed for IBM
|
||||
# PC systems and compatibles from 1981 through fairly recent
|
||||
# system designs based on the PCI bus.
|
||||
# 86Box A hypervisor and IBM PC system emulator that specializes in
|
||||
# running old operating systems and software designed for IBM
|
||||
# PC systems and compatibles from 1981 through fairly recent
|
||||
# system designs based on the PCI bus.
|
||||
#
|
||||
# This file is part of the 86Box distribution.
|
||||
# This file is part of the 86Box distribution.
|
||||
#
|
||||
# CMake build script.
|
||||
# CMake build script.
|
||||
#
|
||||
# Authors: David Hrdlička, <hrdlickadavid@outlook.com>
|
||||
# Authors: David Hrdlička, <hrdlickadavid@outlook.com>
|
||||
#
|
||||
# Copyright 2020,2021 David Hrdlička.
|
||||
# Copyright 2020,2021 David Hrdlička.
|
||||
#
|
||||
|
||||
add_library(sio OBJECT sio_acc3221.c sio_f82c710.c sio_82091aa.c sio_fdc37c6xx.c
|
||||
sio_fdc37c67x.c sio_fdc37c669.c sio_fdc37c93x.c sio_fdc37m60x.c
|
||||
sio_it8661f.c
|
||||
sio_pc87306.c sio_pc87307.c sio_pc87309.c sio_pc87310.c sio_pc87311.c sio_pc87332.c
|
||||
sio_prime3b.c sio_prime3c.c
|
||||
sio_w83787f.c sio_w83877f.c sio_w83977f.c sio_um8669f.c
|
||||
sio_vt82c686.c)
|
||||
sio_fdc37c67x.c sio_fdc37c669.c sio_fdc37c93x.c sio_fdc37m60x.c
|
||||
sio_it8661f.c
|
||||
sio_pc87306.c sio_pc87307.c sio_pc87309.c sio_pc87310.c sio_pc87311.c sio_pc87332.c
|
||||
sio_prime3b.c sio_prime3c.c
|
||||
sio_w83787f.c sio_w83877f.c sio_w83977f.c sio_um8669f.c
|
||||
sio_vt82c686.c)
|
||||
|
||||
if(SIO_DETECT)
|
||||
target_sources(sio PRIVATE sio_detect.c)
|
||||
target_sources(sio PRIVATE sio_detect.c)
|
||||
endif()
|
@ -1,44 +1,44 @@
|
||||
#
|
||||
# 86Box A hypervisor and IBM PC system emulator that specializes in
|
||||
# running old operating systems and software designed for IBM
|
||||
# PC systems and compatibles from 1981 through fairly recent
|
||||
# system designs based on the PCI bus.
|
||||
# 86Box A hypervisor and IBM PC system emulator that specializes in
|
||||
# running old operating systems and software designed for IBM
|
||||
# PC systems and compatibles from 1981 through fairly recent
|
||||
# system designs based on the PCI bus.
|
||||
#
|
||||
# This file is part of the 86Box distribution.
|
||||
# This file is part of the 86Box distribution.
|
||||
#
|
||||
# CMake build script.
|
||||
# CMake build script.
|
||||
#
|
||||
# Authors: David Hrdlička, <hrdlickadavid@outlook.com>
|
||||
# Authors: David Hrdlička, <hrdlickadavid@outlook.com>
|
||||
#
|
||||
# Copyright 2020,2021 David Hrdlička.
|
||||
# Copyright 2020,2021 David Hrdlička.
|
||||
#
|
||||
|
||||
add_library(snd OBJECT sound.c openal.c snd_opl.c snd_opl_nuked.c snd_resid.cc
|
||||
midi.c midi_rtmidi.cpp snd_speaker.c snd_pssj.c snd_lpt_dac.c snd_ac97_codec.c snd_ac97_via.c
|
||||
snd_lpt_dss.c snd_adlib.c snd_adlibgold.c snd_ad1848.c snd_audiopci.c
|
||||
snd_azt2316a.c snd_cms.c snd_cs423x.c snd_gus.c snd_sb.c snd_sb_dsp.c
|
||||
snd_emu8k.c snd_mpu401.c snd_sn76489.c snd_ssi2001.c snd_wss.c snd_ym7128.c)
|
||||
midi.c midi_rtmidi.cpp snd_speaker.c snd_pssj.c snd_lpt_dac.c snd_ac97_codec.c snd_ac97_via.c
|
||||
snd_lpt_dss.c snd_adlib.c snd_adlibgold.c snd_ad1848.c snd_audiopci.c
|
||||
snd_azt2316a.c snd_cms.c snd_cs423x.c snd_gus.c snd_sb.c snd_sb_dsp.c
|
||||
snd_emu8k.c snd_mpu401.c snd_sn76489.c snd_ssi2001.c snd_wss.c snd_ym7128.c)
|
||||
|
||||
if(FLUIDSYNTH)
|
||||
target_compile_definitions(snd PRIVATE USE_FLUIDSYNTH)
|
||||
target_sources(snd PRIVATE midi_fluidsynth.c)
|
||||
target_compile_definitions(snd PRIVATE USE_FLUIDSYNTH)
|
||||
target_sources(snd PRIVATE midi_fluidsynth.c)
|
||||
endif()
|
||||
|
||||
if(MUNT)
|
||||
target_compile_definitions(snd PRIVATE USE_MUNT)
|
||||
target_sources(snd PRIVATE midi_mt32.c)
|
||||
target_compile_definitions(snd PRIVATE USE_MUNT)
|
||||
target_sources(snd PRIVATE midi_mt32.c)
|
||||
|
||||
add_subdirectory(munt)
|
||||
target_link_libraries(86Box mt32emu)
|
||||
add_subdirectory(munt)
|
||||
target_link_libraries(86Box mt32emu)
|
||||
endif()
|
||||
|
||||
if(PAS16)
|
||||
target_compile_definitions(snd PRIVATE USE_PAS16)
|
||||
target_sources(snd PRIVATE snd_pas16.c)
|
||||
target_compile_definitions(snd PRIVATE USE_PAS16)
|
||||
target_sources(snd PRIVATE snd_pas16.c)
|
||||
endif()
|
||||
|
||||
if(GUSMAX)
|
||||
target_compile_definitions(snd PRIVATE USE_GUSMAX)
|
||||
target_compile_definitions(snd PRIVATE USE_GUSMAX)
|
||||
endif()
|
||||
|
||||
add_subdirectory(resid-fp)
|
||||
|
@ -1,26 +1,26 @@
|
||||
#
|
||||
# 86Box A hypervisor and IBM PC system emulator that specializes in
|
||||
# running old operating systems and software designed for IBM
|
||||
# PC systems and compatibles from 1981 through fairly recent
|
||||
# system designs based on the PCI bus.
|
||||
# 86Box A hypervisor and IBM PC system emulator that specializes in
|
||||
# running old operating systems and software designed for IBM
|
||||
# PC systems and compatibles from 1981 through fairly recent
|
||||
# system designs based on the PCI bus.
|
||||
#
|
||||
# This file is part of the 86Box distribution.
|
||||
# This file is part of the 86Box distribution.
|
||||
#
|
||||
# CMake build script.
|
||||
# CMake build script.
|
||||
#
|
||||
# Authors: David Hrdlička, <hrdlickadavid@outlook.com>
|
||||
# Authors: David Hrdlička, <hrdlickadavid@outlook.com>
|
||||
#
|
||||
# Copyright 2020,2021 David Hrdlička.
|
||||
# Copyright 2020,2021 David Hrdlička.
|
||||
#
|
||||
|
||||
add_library(mt32emu STATIC Analog.cpp BReverbModel.cpp File.cpp FileStream.cpp
|
||||
LA32Ramp.cpp LA32FloatWaveGenerator.cpp LA32WaveGenerator.cpp
|
||||
MidiStreamParser.cpp Part.cpp Partial.cpp PartialManager.cpp
|
||||
Poly.cpp ROMInfo.cpp SampleRateConverter.cpp
|
||||
srchelper/srctools/src/FIRResampler.cpp
|
||||
srchelper/srctools/src/IIR2xResampler.cpp
|
||||
srchelper/srctools/src/LinearResampler.cpp
|
||||
srchelper/srctools/src/ResamplerModel.cpp
|
||||
srchelper/srctools/src/SincResampler.cpp
|
||||
srchelper/InternalResampler.cpp Synth.cpp Tables.cpp TVA.cpp TVF.cpp
|
||||
TVP.cpp sha1/sha1.cpp c_interface/c_interface.cpp)
|
||||
LA32Ramp.cpp LA32FloatWaveGenerator.cpp LA32WaveGenerator.cpp
|
||||
MidiStreamParser.cpp Part.cpp Partial.cpp PartialManager.cpp
|
||||
Poly.cpp ROMInfo.cpp SampleRateConverter.cpp
|
||||
srchelper/srctools/src/FIRResampler.cpp
|
||||
srchelper/srctools/src/IIR2xResampler.cpp
|
||||
srchelper/srctools/src/LinearResampler.cpp
|
||||
srchelper/srctools/src/ResamplerModel.cpp
|
||||
srchelper/srctools/src/SincResampler.cpp
|
||||
srchelper/InternalResampler.cpp Synth.cpp Tables.cpp TVA.cpp TVF.cpp
|
||||
TVP.cpp sha1/sha1.cpp c_interface/c_interface.cpp)
|
@ -1,19 +1,19 @@
|
||||
#
|
||||
# 86Box A hypervisor and IBM PC system emulator that specializes in
|
||||
# running old operating systems and software designed for IBM
|
||||
# PC systems and compatibles from 1981 through fairly recent
|
||||
# system designs based on the PCI bus.
|
||||
# 86Box A hypervisor and IBM PC system emulator that specializes in
|
||||
# running old operating systems and software designed for IBM
|
||||
# PC systems and compatibles from 1981 through fairly recent
|
||||
# system designs based on the PCI bus.
|
||||
#
|
||||
# This file is part of the 86Box distribution.
|
||||
# This file is part of the 86Box distribution.
|
||||
#
|
||||
# CMake build script.
|
||||
# CMake build script.
|
||||
#
|
||||
# Authors: David Hrdlička, <hrdlickadavid@outlook.com>
|
||||
# Authors: David Hrdlička, <hrdlickadavid@outlook.com>
|
||||
#
|
||||
# Copyright 2020,2021 David Hrdlička.
|
||||
# Copyright 2020,2021 David Hrdlička.
|
||||
#
|
||||
|
||||
add_library(resid-fp STATIC convolve-sse.cc convolve.cc envelope.cc extfilt.cc
|
||||
filter.cc pot.cc sid.cc voice.cc wave.cc wave6581_PST.cc
|
||||
wave6581_PS_.cc wave6581_P_T.cc wave6581__ST.cc wave8580_PST.cc
|
||||
wave8580_PS_.cc wave8580_P_T.cc wave8580__ST.cc)
|
||||
filter.cc pot.cc sid.cc voice.cc wave.cc wave6581_PST.cc
|
||||
wave6581_PS_.cc wave6581_P_T.cc wave6581__ST.cc wave8580_PST.cc
|
||||
wave8580_PS_.cc wave8580_P_T.cc wave8580__ST.cc)
|
@ -1,3 +1,20 @@
|
||||
#
|
||||
# 86Box A hypervisor and IBM PC system emulator that specializes in
|
||||
# running old operating systems and software designed for IBM
|
||||
# PC systems and compatibles from 1981 through fairly recent
|
||||
# system designs based on the PCI bus.
|
||||
#
|
||||
# This file is part of the 86Box distribution.
|
||||
#
|
||||
# CMake build script.
|
||||
#
|
||||
# Authors: Cacodemon345
|
||||
# David Hrdlička, <hrdlickadavid@outlook.com>
|
||||
#
|
||||
# Copyright 2021 Cacodemon345.
|
||||
# Copyright 2021 David Hrdlička.
|
||||
#
|
||||
|
||||
add_library(plat OBJECT unix.c)
|
||||
|
||||
if (NOT CPPTHREADS)
|
||||
|
@ -1,55 +1,55 @@
|
||||
#
|
||||
# 86Box A hypervisor and IBM PC system emulator that specializes in
|
||||
# running old operating systems and software designed for IBM
|
||||
# PC systems and compatibles from 1981 through fairly recent
|
||||
# system designs based on the PCI bus.
|
||||
# 86Box A hypervisor and IBM PC system emulator that specializes in
|
||||
# running old operating systems and software designed for IBM
|
||||
# PC systems and compatibles from 1981 through fairly recent
|
||||
# system designs based on the PCI bus.
|
||||
#
|
||||
# This file is part of the 86Box distribution.
|
||||
# This file is part of the 86Box distribution.
|
||||
#
|
||||
# CMake build script.
|
||||
# CMake build script.
|
||||
#
|
||||
# Authors: David Hrdlička, <hrdlickadavid@outlook.com>
|
||||
# Authors: David Hrdlička, <hrdlickadavid@outlook.com>
|
||||
#
|
||||
# Copyright 2020,2021 David Hrdlička.
|
||||
# Copyright 2020,2021 David Hrdlička.
|
||||
#
|
||||
|
||||
add_library(vid OBJECT agpgart.c video.c vid_table.c vid_cga.c vid_cga_comp.c
|
||||
vid_compaq_cga.c vid_mda.c vid_hercules.c vid_herculesplus.c
|
||||
vid_incolor.c vid_colorplus.c vid_genius.c vid_pgc.c vid_im1024.c
|
||||
vid_sigma.c vid_wy700.c vid_ega.c vid_ega_render.c vid_svga.c
|
||||
vid_svga_render.c vid_ddc.c vid_vga.c vid_ati_eeprom.c vid_ati18800.c
|
||||
vid_ati28800.c vid_ati_mach64.c vid_ati68860_ramdac.c vid_bt48x_ramdac.c
|
||||
vid_av9194.c vid_icd2061.c vid_ics2494.c vid_ics2595.c vid_cl54xx.c
|
||||
vid_et4000.c vid_sc1148x_ramdac.c vid_sc1502x_ramdac.c vid_et4000w32.c
|
||||
vid_stg_ramdac.c vid_ht216.c vid_oak_oti.c vid_paradise.c vid_rtg310x.c
|
||||
vid_f82c425.c vid_ti_cf62011.c vid_tvga.c vid_tgui9440.c vid_tkd8001_ramdac.c
|
||||
vid_att20c49x_ramdac.c vid_s3.c vid_s3_virge.c vid_ibm_rgb528_ramdac.c
|
||||
vid_sdac_ramdac.c vid_ogc.c vid_nga.c vid_tvp3026_ramdac.c vid_att2xc498_ramdac.c)
|
||||
vid_compaq_cga.c vid_mda.c vid_hercules.c vid_herculesplus.c
|
||||
vid_incolor.c vid_colorplus.c vid_genius.c vid_pgc.c vid_im1024.c
|
||||
vid_sigma.c vid_wy700.c vid_ega.c vid_ega_render.c vid_svga.c
|
||||
vid_svga_render.c vid_ddc.c vid_vga.c vid_ati_eeprom.c vid_ati18800.c
|
||||
vid_ati28800.c vid_ati_mach64.c vid_ati68860_ramdac.c vid_bt48x_ramdac.c
|
||||
vid_av9194.c vid_icd2061.c vid_ics2494.c vid_ics2595.c vid_cl54xx.c
|
||||
vid_et4000.c vid_sc1148x_ramdac.c vid_sc1502x_ramdac.c vid_et4000w32.c
|
||||
vid_stg_ramdac.c vid_ht216.c vid_oak_oti.c vid_paradise.c vid_rtg310x.c
|
||||
vid_f82c425.c vid_ti_cf62011.c vid_tvga.c vid_tgui9440.c vid_tkd8001_ramdac.c
|
||||
vid_att20c49x_ramdac.c vid_s3.c vid_s3_virge.c vid_ibm_rgb528_ramdac.c
|
||||
vid_sdac_ramdac.c vid_ogc.c vid_nga.c vid_tvp3026_ramdac.c vid_att2xc498_ramdac.c)
|
||||
|
||||
if(MGA)
|
||||
target_compile_definitions(vid PRIVATE USE_MGA)
|
||||
target_sources(vid PRIVATE vid_mga.c)
|
||||
target_compile_definitions(vid PRIVATE USE_MGA)
|
||||
target_sources(vid PRIVATE vid_mga.c)
|
||||
endif()
|
||||
|
||||
if(VGAWONDER)
|
||||
target_compile_definitions(vid PRIVATE USE_VGAWONDER)
|
||||
target_compile_definitions(vid PRIVATE USE_VGAWONDER)
|
||||
endif()
|
||||
|
||||
if(XL24)
|
||||
target_compile_definitions(vid PRIVATE USE_XL24)
|
||||
target_compile_definitions(vid PRIVATE USE_XL24)
|
||||
endif()
|
||||
|
||||
add_library(voodoo OBJECT vid_voodoo.c vid_voodoo_banshee.c
|
||||
vid_voodoo_banshee_blitter.c vid_voodoo_blitter.c vid_voodoo_display.c
|
||||
vid_voodoo_fb.c vid_voodoo_fifo.c vid_voodoo_reg.c vid_voodoo_render.c
|
||||
vid_voodoo_setup.c vid_voodoo_texture.c)
|
||||
vid_voodoo_banshee_blitter.c vid_voodoo_blitter.c vid_voodoo_display.c
|
||||
vid_voodoo_fb.c vid_voodoo_fifo.c vid_voodoo_reg.c vid_voodoo_render.c
|
||||
vid_voodoo_setup.c vid_voodoo_texture.c)
|
||||
|
||||
if(NOT MSVC AND (ARCH STREQUAL "i386" OR ARCH STREQUAL "x86_64"))
|
||||
target_compile_options(voodoo PRIVATE "-msse2")
|
||||
target_compile_options(voodoo PRIVATE "-msse2")
|
||||
endif()
|
||||
|
||||
# Suppress GCC false positive warnings in vid_voodoo_codegen_x86[-64].h
|
||||
# that cause ~3000 lines to be output into the logs each time
|
||||
if(CMAKE_C_COMPILER_ID STREQUAL "GNU")
|
||||
target_compile_options(voodoo PRIVATE "-Wstringop-overflow=0")
|
||||
target_compile_options(voodoo PRIVATE "-Wstringop-overflow=0")
|
||||
endif()
|
@ -1,53 +1,53 @@
|
||||
#
|
||||
# 86Box A hypervisor and IBM PC system emulator that specializes in
|
||||
# running old operating systems and software designed for IBM
|
||||
# PC systems and compatibles from 1981 through fairly recent
|
||||
# system designs based on the PCI bus.
|
||||
# 86Box A hypervisor and IBM PC system emulator that specializes in
|
||||
# running old operating systems and software designed for IBM
|
||||
# PC systems and compatibles from 1981 through fairly recent
|
||||
# system designs based on the PCI bus.
|
||||
#
|
||||
# This file is part of the 86Box distribution.
|
||||
# This file is part of the 86Box distribution.
|
||||
#
|
||||
# CMake build script.
|
||||
# CMake build script.
|
||||
#
|
||||
# Authors: David Hrdlička, <hrdlickadavid@outlook.com>
|
||||
# Authors: David Hrdlička, <hrdlickadavid@outlook.com>
|
||||
#
|
||||
# Copyright 2020,2021 David Hrdlička.
|
||||
# Copyright 2020,2021 David Hrdlička.
|
||||
#
|
||||
|
||||
enable_language(RC)
|
||||
|
||||
add_library(plat OBJECT win.c win_dynld.c win_cdrom.c win_keyboard.c
|
||||
win_crashdump.c win_mouse.c)
|
||||
win_crashdump.c win_mouse.c)
|
||||
|
||||
add_library(ui OBJECT win_ui.c win_icon.c win_stbar.c win_sdl.c win_dialog.c win_about.c
|
||||
win_settings.c win_devconf.c win_snd_gain.c win_specify_dim.c win_new_floppy.c
|
||||
win_jsconf.c win_media_menu.c win_preferences.c win_discord.c glad.c win_opengl.c
|
||||
win_opengl_glslp.c 86Box.rc)
|
||||
win_settings.c win_devconf.c win_snd_gain.c win_specify_dim.c win_new_floppy.c
|
||||
win_jsconf.c win_media_menu.c win_preferences.c win_discord.c glad.c win_opengl.c
|
||||
win_opengl_glslp.c 86Box.rc)
|
||||
|
||||
if(NOT CPPTHREADS)
|
||||
target_sources(plat PRIVATE win_thread.c)
|
||||
endif()
|
||||
|
||||
if(MSVC)
|
||||
# MSVC complains when we include the manifest from 86Box.rc...
|
||||
# On the bright side, CMake supports passing the manifest as a source
|
||||
# file when using MSVC, so we might just as well do that!
|
||||
target_compile_definitions(ui PRIVATE NO_INCLUDE_MANIFEST)
|
||||
target_sources(86Box PRIVATE 86Box.manifest)
|
||||
|
||||
# Append null to resource strings (fixes file dialogs)
|
||||
set_property(SOURCE 86Box.rc PROPERTY COMPILE_FLAGS -n)
|
||||
target_sources(plat PRIVATE win_thread.c)
|
||||
endif()
|
||||
|
||||
if(NOT MINGW)
|
||||
target_sources(plat PRIVATE win_opendir.c)
|
||||
# MSVC linker adds its own manifest to the executable, which fails if
|
||||
# we include ours in 86Box.rc. We therefore need to pass the manifest
|
||||
# directly as as a source file, so the linker can use that instead.
|
||||
set_property(SOURCE 86Box.rc PROPERTY COMPILE_DEFINITIONS NO_INCLUDE_MANIFEST)
|
||||
target_sources(86Box PRIVATE 86Box.manifest)
|
||||
|
||||
# Append null to resource strings (fixes file dialogs)
|
||||
set_property(SOURCE 86Box.rc PROPERTY COMPILE_FLAGS -n)
|
||||
|
||||
# `opendir` is only included in MinGW, so include an implementation
|
||||
# for other builds.
|
||||
target_sources(plat PRIVATE win_opendir.c)
|
||||
endif()
|
||||
|
||||
if(DINPUT)
|
||||
target_sources(plat PRIVATE win_joystick.cpp)
|
||||
target_link_libraries(86Box dinput8)
|
||||
target_sources(plat PRIVATE win_joystick.cpp)
|
||||
target_link_libraries(86Box dinput8)
|
||||
else()
|
||||
target_sources(plat PRIVATE win_joystick_rawinput.c)
|
||||
target_sources(plat PRIVATE win_joystick_rawinput.c)
|
||||
endif()
|
||||
|
||||
target_link_libraries(86Box advapi32 comctl32 comdlg32 gdi32 shell32 iphlpapi
|
||||
dxguid imm32 hid setupapi uxtheme version winmm psapi)
|
||||
dxguid imm32 hid setupapi uxtheme version winmm psapi)
|
||||
|
@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "86box",
|
||||
"version-string": "3.0",
|
||||
"version-string": "3.1",
|
||||
"homepage": "https://86box.net/",
|
||||
"documentation": "http://86box.readthedocs.io/",
|
||||
"license": "GPL-2.0-only",
|
||||
|
Loading…
x
Reference in New Issue
Block a user