mirror of
https://github.com/86Box/86Box.git
synced 2026-02-25 04:45:31 -07:00
Fixes the screenshot function on macOS if the user installed libpng via homebrew. Previously it would link to older libraries if those were installed, while at runtime it decided to run the version installed by homebrew.
146 lines
3.4 KiB
CMake
146 lines
3.4 KiB
CMake
#
|
|
# 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: David Hrdlička, <hrdlickadavid@outlook.com>
|
|
#
|
|
# Copyright 2020,2021 David Hrdlička.
|
|
#
|
|
|
|
# WIN32 marks us as a GUI app on Windows
|
|
add_executable(86Box WIN32 86box.c config.c random.c timer.c io.c acpi.c apm.c
|
|
dma.c ddma.c nmi.c pic.c pit.c port_92.c ppi.c pci.c mca.c usb.c
|
|
device.c nvr.c nvr_at.c nvr_ps2.c)
|
|
|
|
if(NEW_DYNAREC)
|
|
add_compile_definitions(USE_NEW_DYNAREC)
|
|
endif()
|
|
|
|
if(RELEASE)
|
|
add_compile_definitions(RELEASE_BUILD)
|
|
endif()
|
|
|
|
if(DYNAREC)
|
|
add_compile_definitions(USE_DYNAREC)
|
|
endif()
|
|
|
|
if(VRAMDUMP)
|
|
add_compile_definitions(ENABLE_VRAM_DUMP)
|
|
endif()
|
|
|
|
if(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()
|
|
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)
|
|
|
|
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()
|
|
endif()
|
|
|
|
if(MINGW)
|
|
target_link_options(86Box PRIVATE "-static")
|
|
set(CMAKE_FIND_LIBRARY_SUFFIXES ".a" ".dll.a")
|
|
endif()
|
|
|
|
if(APPLE)
|
|
# Force using the newest library if it's installed by homebrew
|
|
set(CMAKE_FIND_FRAMEWORK LAST)
|
|
endif()
|
|
|
|
find_package(Freetype REQUIRED)
|
|
include_directories(${FREETYPE_INCLUDE_DIRS})
|
|
|
|
find_package(OpenAL REQUIRED)
|
|
include_directories(${OPENAL_INCLUDE_DIR})
|
|
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)
|
|
else()
|
|
target_link_libraries(86Box ${SDL2_LIBRARIES})
|
|
endif()
|
|
|
|
find_package(PNG REQUIRED)
|
|
include_directories(${PNG_INCLUDE_DIRS})
|
|
target_link_libraries(86Box PNG::PNG)
|
|
|
|
configure_file(include/86box/version.h.in include/86box/version.h @ONLY)
|
|
include_directories(${CMAKE_CURRENT_BINARY_DIR}/include)
|
|
|
|
include_directories(include)
|
|
if(NEW_DYNAREC)
|
|
include_directories(cpu codegen_new)
|
|
else()
|
|
include_directories(cpu codegen)
|
|
endif()
|
|
|
|
add_subdirectory(cdrom)
|
|
add_subdirectory(chipset)
|
|
|
|
add_subdirectory(cpu)
|
|
if(NEW_DYNAREC)
|
|
add_subdirectory(codegen_new)
|
|
else()
|
|
add_subdirectory(codegen)
|
|
endif()
|
|
|
|
if(MINITRACE)
|
|
add_compile_definitions(MTR_ENABLED)
|
|
add_library(minitrace OBJECT minitrace/minitrace.c)
|
|
target_link_libraries(86Box minitrace)
|
|
endif()
|
|
|
|
install(TARGETS 86Box)
|
|
if(VCPKG_TOOLCHAIN)
|
|
x_vcpkg_install_local_dependencies(TARGETS 86Box DESTINATION "bin")
|
|
endif()
|
|
|
|
if(MSVC)
|
|
install(FILES $<TARGET_PDB_FILE:86Box>
|
|
CONFIGURATIONS Debug RelWithDebInfo
|
|
DESTINATION "bin")
|
|
endif()
|
|
|
|
add_subdirectory(device)
|
|
add_subdirectory(disk)
|
|
add_subdirectory(floppy)
|
|
add_subdirectory(game)
|
|
add_subdirectory(machine)
|
|
add_subdirectory(mem)
|
|
add_subdirectory(network)
|
|
add_subdirectory(printer)
|
|
add_subdirectory(sio)
|
|
add_subdirectory(scsi)
|
|
add_subdirectory(sound)
|
|
add_subdirectory(video)
|
|
if (WIN32)
|
|
add_subdirectory(win)
|
|
else()
|
|
add_subdirectory(unix)
|
|
endif()
|