pcsxr/libpcsxcore/CMakeLists.txt

106 lines
2.7 KiB
CMake

message("Configuring core")
set(DYNAREC "auto" CACHE STRING "Build dynarec for arch.")
set_property(CACHE DYNAREC PROPERTY STRINGS auto x86_64 x86 ppc no)
option(ENABLE_CCDDA "Enables compressed CDDA support." OFF)
option(USE_LIBARCHIVE "Enables compressed data-tracks support." OFF)
if (ENABLE_CCDDA)
find_package(FFMPEG REQUIRED)
include_directories(${FFMPEG_INCLUDE_DIRS})
add_definitions(-DENABLE_CCDDA)
endif()
if (USE_LIBARCHIVE)
find_package(LibArchive REQUIRED)
include_directories(${LibArchive_INCLUDE_DIRS})
add_definitions(-DHAVE_LIBARCHIVE)
endif()
# Architecture detection and arch specific settings
message(${CMAKE_SYSTEM_PROCESSOR})
if (${CMAKE_SYSTEM_PROCESSOR} MATCHES "^powerpc")
set(_ARCH_PPC 1)
elseif(${CMAKE_SYSTEM_PROCESSOR} MATCHES "^i.86")
set(_ARCH_32 1)
elseif(${CMAKE_SYSTEM_PROCESSOR} MATCHES "^x86_64")
set(_ARCH_64 1)
else()
message("Unsupported arch. Will not build dynarec")
add_definitions(-DNOPSXREC)
endif()
if (${DYNAREC} STREQUAL "auto")
if (_ARCH_PPC)
set(DYNAREC_PPC 1)
message("Using PPC Dynarec")
elseif(_ARCH_64)
set(DYNAREC_64 1)
message("Using x86_64 Dynarec")
elseif(_ARCH_32)
set(DYNAREC_32 1)
message("Using x86 Dynarec")
endif()
elseif (${DYNAREC} STREQUAL "ppc")
#if anyone ever fixes ppc dynarec
# set(DYNAREC_PPC 1)
# message("Using PPC Dynarec")
message("PPC Dynarec is broken, sorry.")
add_definitions(-DNOPSXREC)
elseif (${DYNAREC} STREQUAL "x86_64")
set(DYNAREC_64 1)
message("Using x86_64 Dynarec")
elseif (${DYNAREC} STREQUAL "x86")
set(DYNAREC_32 1)
message("Using x86 Dynarec")
elseif (${DYNAREC} STREQUAL "no")
message("Will not build dynarec")
add_definitions(-DNOPSXREC)
endif()
set(SRCS psxbios.c
cdrom.c
psxcounters.c
psxdma.c
disr3000a.c
gpu.c
spu.c
sio.c
psxhw.c
mdec.c
psxmem.c
misc.c
plugins.c
decode_xa.c
r3000a.c
psxinterpreter.c
gte.c
psxhle.c
debug.c
psxcommon.c
cdriso.c
cheat.c
socket.c
ppf.c)
set(LIBS "-lm")
if(DYNAREC_64)
file(GLOB_RECURSE DYNAREC_SRC ix86_64/*.c)
elseif(DYNAREC_32)
file(GLOB_RECURSE DYNAREC_SRC ix86/*.c)
elseif(DYNAREC_PPC)
enable_language(ASM-ATT)
SET(CMAKE_ASM-ATT_SOURCE_FILE_EXTENSIONS nasm;nas;asm;s)
file(GLOB_RECURSE DYNAREC_SRC ppc/*.c)
set(DYNAREC_SRC ${DYNAREC_SRC} ppc/pasm.s)
endif()
set(SRCS ${SRCS} ${DYNAREC_SRC})
add_library(pcsxcore STATIC ${SRCS})
target_link_libraries(pcsxcore ${FFMPEG_LIBRARIES} ${LibArchive_LIBRARIES} ${LIBS})