cmake: Windows dependency builds

This commit is contained in:
TellowKrinkle 2021-08-04 00:43:25 -05:00 committed by refractionpcsx2
parent 205c8a05c3
commit e1bb96cc94
17 changed files with 1856 additions and 181 deletions

55
3rdparty/baseclasses/CMakeLists.txt vendored Normal file
View File

@ -0,0 +1,55 @@
add_library(baseclasses
amextra.cpp
amfilter.cpp
amvideo.cpp
combase.cpp
ctlutil.cpp
ddmm.cpp
mtype.cpp
outputq.cpp
pstream.cpp
pullpin.cpp
refclock.cpp
renbase.cpp
schedule.cpp
seekpt.cpp
source.cpp
strmctl.cpp
sysclock.cpp
transfrm.cpp
transip.cpp
vtrans.cpp
wxdebug.cpp
wxlist.cpp
wxutil.cpp
amextra.h
amfilter.h
cache.h
combase.h
ctlutil.h
ddmm.h
fourcc.h
measure.h
msgthrd.h
mtype.h
outputq.h
pstream.h
pullpin.h
refclock.h
reftime.h
renbase.h
schedule.h
seekpt.h
source.h
streams.h
strmctl.h
sysclock.h
transfrm.h
transip.h
vtrans.h
wxdebug.h
wxlist.h
wxutil.h
)
target_include_directories(baseclasses PUBLIC .)
target_precompile_headers(baseclasses PRIVATE streams.h)

50
3rdparty/freetype/CMakeLists.txt vendored Normal file
View File

@ -0,0 +1,50 @@
add_library(freetype
src/autofit/autofit.c
src/bdf/bdf.c
src/cff/cff.c
src/base/ftbase.c
src/base/ftbitmap.c
src/cache/ftcache.c
src/base/ftfstype.c
src/base/ftgasp.c
src/base/ftglyph.c
src/gzip/ftgzip.c
src/base/ftinit.c
src/lzw/ftlzw.c
src/base/ftstroke.c
src/base/ftsystem.c
src/smooth/smooth.c
src/base/ftbbox.c
src/base/ftfntfmt.c
src/base/ftmm.c
src/base/ftpfr.c
src/base/ftsynth.c
src/base/fttype1.c
src/base/ftwinfnt.c
src/base/ftlcdfil.c
src/base/ftgxval.c
src/base/ftotval.c
src/base/ftpatent.c
src/pcf/pcf.c
src/pfr/pfr.c
src/psaux/psaux.c
src/pshinter/pshinter.c
src/psnames/psmodule.c
src/raster/raster.c
src/sfnt/sfnt.c
src/truetype/truetype.c
src/type1/type1.c
src/cid/type1cid.c
src/type42/type42.c
src/winfonts/winfnt.c
include/ft2build.h
include/freetype/config/ftconfig.h
include/freetype/config/ftheader.h
include/freetype/config/ftmodule.h
include/freetype/config/ftoption.h
include/freetype/config/ftstdlib.h
)
target_compile_definitions(freetype PRIVATE _CRT_SECURE_NO_WARNINGS _CRT_SECURE_NO_DEPRECATE FT2_BUILD_LIBRARY)
target_include_directories(freetype PUBLIC include)
target_link_libraries(freetype PRIVATE ZLIB::ZLIB)
add_library(Freetype::Freetype ALIAS freetype)

60
3rdparty/libjpeg/CMakeLists.txt vendored Normal file
View File

@ -0,0 +1,60 @@
add_library(jpeg
jaricom.c
jcapimin.c
jcapistd.c
jcarith.c
jccoefct.c
jccolor.c
jcdctmgr.c
jchuff.c
jcinit.c
jcmainct.c
jcmarker.c
jcmaster.c
jcomapi.c
jcparam.c
jcprepct.c
jcsample.c
jctrans.c
jdapimin.c
jdapistd.c
jdarith.c
jdatadst.c
jdatasrc.c
jdcoefct.c
jdcolor.c
jddctmgr.c
jdhuff.c
jdinput.c
jdmainct.c
jdmarker.c
jdmaster.c
jdmerge.c
jdpostct.c
jdsample.c
jdtrans.c
jerror.c
jfdctflt.c
jfdctfst.c
jfdctint.c
jidctflt.c
jidctfst.c
jidctint.c
jmemansi.c
jmemmgr.c
jquant1.c
jquant2.c
jutils.c
jconfig.h
jdct.h
jerror.h
jinclude.h
jmemsys.h
jmorecfg.h
jpegint.h
jpeglib.h
jversion.h
)
target_include_directories(jpeg PUBLIC .)
add_library(JPEG::JPEG ALIAS jpeg)

21
3rdparty/libpng/CMakeLists.txt vendored Normal file
View File

@ -0,0 +1,21 @@
add_library(png
png.c
pngerror.c
pngget.c
pngmem.c
pngpread.c
pngread.c
pngrio.c
pngrtran.c
pngrutil.c
pngset.c
pngtrans.c
pngwio.c
pngwrite.c
pngwtran.c
pngwutil.c
)
target_link_libraries(png PRIVATE ZLIB::ZLIB)
target_include_directories(png PUBLIC .)
add_library(PNG::PNG ALIAS png)

14
3rdparty/libsamplerate/CMakeLists.txt vendored Normal file
View File

@ -0,0 +1,14 @@
add_library(samplerate
samplerate.c
src_linear.c
src_sinc.c
src_zoh.c
common.h
config.h
fastest_coeffs.h
high_qual_coeffs.h
mid_qual_coeffs.h
samplerate.h
)
target_include_directories(samplerate PUBLIC .)
add_library(PkgConfig::SAMPLERATE ALIAS samplerate)

36
3rdparty/portaudio/CMakeLists.txt vendored Normal file
View File

@ -0,0 +1,36 @@
add_library(portaudio
src/common/pa_allocation.c
src/common/pa_converters.c
src/common/pa_cpuload.c
src/common/pa_debugprint.c
src/common/pa_dither.c
src/common/pa_front.c
src/common/pa_process.c
src/common/pa_ringbuffer.c
src/common/pa_stream.c
src/common/pa_trace.c
src/hostapi/dsound/pa_win_ds.c
src/hostapi/dsound/pa_win_ds_dynlink.c
src/hostapi/wdmks/pa_win_wdmks.c
src/hostapi/wmme/pa_win_wmme.c
src/hostapi/wasapi/pa_win_wasapi.c
src/os/win/pa_win_coinitialize.c
src/os/win/pa_win_hostapis.c
src/os/win/pa_win_util.c
src/os/win/pa_win_waveformat.c
src/os/win/pa_win_wdmks_utils.c
src/os/win/pa_x86_plain_converters.c
include/pa_asio.h
include/pa_jack.h
include/pa_linux_alsa.h
include/pa_mac_core.h
include/pa_win_ds.h
include/pa_win_wasapi.h
include/pa_win_waveformat.h
include/pa_win_wdmks.h
include/pa_win_wmme.h
include/portaudio.h
src/os/win/pa_win_coinitialize.h
)
target_include_directories(portaudio PUBLIC include PRIVATE src/common src/os/win)
add_library(PkgConfig::PORTAUDIO ALIAS portaudio)

11
3rdparty/pthreads4w/CMakeLists.txt vendored Normal file
View File

@ -0,0 +1,11 @@
add_library(pthreads4w
pthread.c
config.h
context.h
include/pthread.h
include/sched.h
include/semaphore.h
need_errno.h
)
target_compile_definitions(pthreads4w PUBLIC PTW32_STATIC_LIB __CLEANUP_SEH PRIVATE HAVE_PTW32_CONFIG_H PTW32_BUILD_INLINED)
target_include_directories(pthreads4w PUBLIC include)

34
3rdparty/soundtouch/CMakeLists.txt vendored Normal file
View File

@ -0,0 +1,34 @@
add_library(soundtouch
source/SoundStretch/WavFile.cpp
source/SoundTouch/AAFilter.cpp
source/SoundTouch/BPMDetect.cpp
source/SoundTouch/cpu_detect_x86.cpp
source/SoundTouch/FIFOSampleBuffer.cpp
source/SoundTouch/FIRFilter.cpp
source/SoundTouch/InterpolateCubic.cpp
source/SoundTouch/InterpolateLinear.cpp
source/SoundTouch/InterpolateShannon.cpp
source/SoundTouch/mmx_optimized.cpp
source/SoundTouch/PeakFinder.cpp
source/SoundTouch/RateTransposer.cpp
source/SoundTouch/SoundTouch.cpp
source/SoundTouch/sse_optimized.cpp
source/SoundTouch/TDStretch.cpp
soundtouch/BPMDetect.h
soundtouch/FIFOSampleBuffer.h
soundtouch/FIFOSamplePipe.h
soundtouch/SoundTouch.h
soundtouch/STTypes.h
source/SoundStretch/WavFile.h
source/SoundTouch/AAFilter.h
source/SoundTouch/cpu_detect.h
source/SoundTouch/FIRFilter.h
source/SoundTouch/InterpolateCubic.h
source/SoundTouch/InterpolateLinear.h
source/SoundTouch/InterpolateShannon.h
source/SoundTouch/PeakFinder.h
source/SoundTouch/RateTransposer.h
source/SoundTouch/TDStretch.h
)
target_include_directories(soundtouch PUBLIC soundtouch)
add_library(PkgConfig::SOUNDTOUCH ALIAS soundtouch)

1149
3rdparty/wxwidgets3.0/CMakeLists.txt vendored Normal file

File diff suppressed because it is too large Load Diff

158
3rdparty/xz/CMakeLists.txt vendored Normal file
View File

@ -0,0 +1,158 @@
add_library(xz-lzma
xz/src/common/tuklib_cpucores.c
xz/src/common/tuklib_physmem.c
xz/src/liblzma/check/check.c
xz/src/liblzma/check/crc32_fast.c
xz/src/liblzma/check/crc32_table.c
xz/src/liblzma/check/crc64_fast.c
xz/src/liblzma/check/crc64_table.c
xz/src/liblzma/check/sha256.c
xz/src/liblzma/common/alone_decoder.c
xz/src/liblzma/common/alone_encoder.c
xz/src/liblzma/common/auto_decoder.c
xz/src/liblzma/common/block_buffer_decoder.c
xz/src/liblzma/common/block_buffer_encoder.c
xz/src/liblzma/common/block_decoder.c
xz/src/liblzma/common/block_encoder.c
xz/src/liblzma/common/block_header_decoder.c
xz/src/liblzma/common/block_header_encoder.c
xz/src/liblzma/common/block_util.c
xz/src/liblzma/common/common.c
xz/src/liblzma/common/easy_buffer_encoder.c
xz/src/liblzma/common/easy_decoder_memusage.c
xz/src/liblzma/common/easy_encoder.c
xz/src/liblzma/common/easy_encoder_memusage.c
xz/src/liblzma/common/easy_preset.c
xz/src/liblzma/common/filter_buffer_decoder.c
xz/src/liblzma/common/filter_buffer_encoder.c
xz/src/liblzma/common/filter_common.c
xz/src/liblzma/common/filter_decoder.c
xz/src/liblzma/common/filter_encoder.c
xz/src/liblzma/common/filter_flags_decoder.c
xz/src/liblzma/common/filter_flags_encoder.c
xz/src/liblzma/common/hardware_cputhreads.c
xz/src/liblzma/common/hardware_physmem.c
xz/src/liblzma/common/index.c
xz/src/liblzma/common/index_decoder.c
xz/src/liblzma/common/index_encoder.c
xz/src/liblzma/common/index_hash.c
xz/src/liblzma/common/outqueue.c
xz/src/liblzma/common/stream_buffer_decoder.c
xz/src/liblzma/common/stream_buffer_encoder.c
xz/src/liblzma/common/stream_decoder.c
xz/src/liblzma/common/stream_encoder.c
xz/src/liblzma/common/stream_encoder_mt.c
xz/src/liblzma/common/stream_flags_common.c
xz/src/liblzma/common/stream_flags_decoder.c
xz/src/liblzma/common/stream_flags_encoder.c
xz/src/liblzma/common/vli_decoder.c
xz/src/liblzma/common/vli_encoder.c
xz/src/liblzma/common/vli_size.c
xz/src/liblzma/delta/delta_common.c
xz/src/liblzma/delta/delta_decoder.c
xz/src/liblzma/delta/delta_encoder.c
xz/src/liblzma/lzma/fastpos_table.c
xz/src/liblzma/lzma/lzma2_decoder.c
xz/src/liblzma/lzma/lzma2_encoder.c
xz/src/liblzma/lzma/lzma_decoder.c
xz/src/liblzma/lzma/lzma_encoder.c
xz/src/liblzma/lzma/lzma_encoder_optimum_fast.c
xz/src/liblzma/lzma/lzma_encoder_optimum_normal.c
xz/src/liblzma/lzma/lzma_encoder_presets.c
xz/src/liblzma/lz/lz_decoder.c
xz/src/liblzma/lz/lz_encoder.c
xz/src/liblzma/lz/lz_encoder_mf.c
xz/src/liblzma/rangecoder/price_table.c
xz/src/liblzma/simple/arm.c
xz/src/liblzma/simple/armthumb.c
xz/src/liblzma/simple/ia64.c
xz/src/liblzma/simple/powerpc.c
xz/src/liblzma/simple/simple_coder.c
xz/src/liblzma/simple/simple_decoder.c
xz/src/liblzma/simple/simple_encoder.c
xz/src/liblzma/simple/sparc.c
xz/src/liblzma/simple/x86.c
xz/src/common/mythread.h
xz/src/common/sysdefs.h
xz/src/common/tuklib_common.h
xz/src/common/tuklib_config.h
xz/src/common/tuklib_cpucores.h
xz/src/common/tuklib_integer.h
xz/src/common/tuklib_physmem.h
xz/src/liblzma/api/lzma.h
xz/src/liblzma/api/lzma/base.h
xz/src/liblzma/api/lzma/bcj.h
xz/src/liblzma/api/lzma/block.h
xz/src/liblzma/api/lzma/check.h
xz/src/liblzma/api/lzma/container.h
xz/src/liblzma/api/lzma/delta.h
xz/src/liblzma/api/lzma/filter.h
xz/src/liblzma/api/lzma/hardware.h
xz/src/liblzma/api/lzma/index.h
xz/src/liblzma/api/lzma/index_hash.h
xz/src/liblzma/api/lzma/lzma12.h
xz/src/liblzma/api/lzma/stream_flags.h
xz/src/liblzma/api/lzma/version.h
xz/src/liblzma/api/lzma/vli.h
xz/src/liblzma/check/check.h
xz/src/liblzma/check/crc32_table_be.h
xz/src/liblzma/check/crc32_table_le.h
xz/src/liblzma/check/crc64_table_be.h
xz/src/liblzma/check/crc64_table_le.h
xz/src/liblzma/check/crc_macros.h
xz/src/liblzma/common/alone_decoder.h
xz/src/liblzma/common/block_buffer_encoder.h
xz/src/liblzma/common/block_decoder.h
xz/src/liblzma/common/block_encoder.h
xz/src/liblzma/common/common.h
xz/src/liblzma/common/easy_preset.h
xz/src/liblzma/common/filter_common.h
xz/src/liblzma/common/filter_decoder.h
xz/src/liblzma/common/filter_encoder.h
xz/src/liblzma/common/index.h
xz/src/liblzma/common/index_encoder.h
xz/src/liblzma/common/memcmplen.h
xz/src/liblzma/common/outqueue.h
xz/src/liblzma/common/stream_decoder.h
xz/src/liblzma/common/stream_flags_common.h
xz/src/liblzma/delta/delta_common.h
xz/src/liblzma/delta/delta_decoder.h
xz/src/liblzma/delta/delta_encoder.h
xz/src/liblzma/delta/delta_private.h
xz/src/liblzma/lzma/fastpos.h
xz/src/liblzma/lzma/lzma2_decoder.h
xz/src/liblzma/lzma/lzma2_encoder.h
xz/src/liblzma/lzma/lzma_common.h
xz/src/liblzma/lzma/lzma_decoder.h
xz/src/liblzma/lzma/lzma_encoder.h
xz/src/liblzma/lzma/lzma_encoder_private.h
xz/src/liblzma/lz/lz_decoder.h
xz/src/liblzma/lz/lz_encoder.h
xz/src/liblzma/lz/lz_encoder_hash.h
xz/src/liblzma/lz/lz_encoder_hash_table.h
xz/src/liblzma/rangecoder/price.h
xz/src/liblzma/rangecoder/range_common.h
xz/src/liblzma/rangecoder/range_decoder.h
xz/src/liblzma/rangecoder/range_encoder.h
xz/src/liblzma/simple/simple_coder.h
xz/src/liblzma/simple/simple_decoder.h
xz/src/liblzma/simple/simple_encoder.h
xz/src/liblzma/simple/simple_private.h
config.h
)
target_compile_definitions(xz-lzma PRIVATE HAVE_CONFIG_H)
target_include_directories(xz-lzma
PUBLIC
xz/src/liblzma/api
PRIVATE
.
xz/src/common
xz/src/liblzma/check
xz/src/liblzma/common
xz/src/liblzma/delta
xz/src/liblzma/lz
xz/src/liblzma/lzma
xz/src/liblzma/rangecoder
xz/src/liblzma/simple
)
add_library(LibLZMA::LibLZMA ALIAS xz-lzma)

31
3rdparty/zlib/CMakeLists.txt vendored Normal file
View File

@ -0,0 +1,31 @@
add_library(pcsx2-zlib
adler32.c
compress.c
crc32.c
deflate.c
gzclose.c
gzlib.c
gzread.c
gzwrite.c
infback.c
inffast.c
inflate.c
inftrees.c
trees.c
uncompr.c
zutil.c
crc32.h
deflate.h
inffast.h
inffixed.h
inflate.h
inftrees.h
trees.h
zconf.h
zlib.h
zutil.h
)
target_include_directories(pcsx2-zlib PUBLIC .)
add_library(ZLIB::ZLIB ALIAS pcsx2-zlib)

View File

@ -77,6 +77,8 @@ elseif(CMAKE_CXX_COMPILER_ID STREQUAL "Intel")
elseif(CMAKE_CXX_COMPILER_ID STREQUAL "GNU")
set(USE_GCC TRUE)
message(STATUS "Building with GNU GCC")
elseif(MSVC)
message(STATUS "Building with MSVC")
else()
message(FATAL_ERROR "Unknown compiler: ${CMAKE_CXX_COMPILER_ID}")
endif()
@ -99,6 +101,8 @@ set(CMAKE_LINKER_FLAGS_DEVEL "${CMAKE_LINKER_FLAGS_RELWITHDEBINFO}"
CACHE STRING "Flags used for linking binaries during development builds" FORCE)
set(CMAKE_SHARED_LINKER_FLAGS_DEVEL "${CMAKE_SHARED_LINKER_FLAGS_RELWITHDEBINFO}"
CACHE STRING "Flags used for linking shared libraries during development builds" FORCE)
set(CMAKE_EXE_LINKER_FLAGS_DEVEL "${CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO}"
CACHE STRING "Flags used for linking executables during development builds" FORCE)
if(CMAKE_CONFIGURATION_TYPES)
list(INSERT CMAKE_CONFIGURATION_TYPES 0 Devel)
endif()
@ -152,6 +156,9 @@ if(${PCSX2_TARGET_ARCHITECTURES} MATCHES "i386")
set(CMAKE_POSITION_INDEPENDENT_CODE OFF)
if(NOT DEFINED ARCH_FLAG)
if (MSVC)
set(ARCH_FLAG /arch:SSE2)
else()
if (DISABLE_ADVANCE_SIMD)
if (USE_ICC)
set(ARCH_FLAG "-msse2 -msse4.1")
@ -165,6 +172,7 @@ if(${PCSX2_TARGET_ARCHITECTURES} MATCHES "i386")
set(ARCH_FLAG "-mfxsr -march=native")
endif()
endif()
endif()
list(APPEND PCSX2_DEFS _ARCH_32=1 _M_X86=1 _M_X86_32=1)
set(_ARCH_32 1)
@ -174,7 +182,7 @@ elseif(${PCSX2_TARGET_ARCHITECTURES} MATCHES "x86_64")
# x86_64 requires -fPIC
set(CMAKE_POSITION_INDEPENDENT_CODE ON)
if(NOT DEFINED ARCH_FLAG)
if(NOT DEFINED ARCH_FLAG AND NOT MSVC)
if (DISABLE_ADVANCE_SIMD)
if (USE_ICC)
set(ARCH_FLAG "-msse2 -msse4.1")
@ -235,7 +243,13 @@ option(USE_PGO_OPTIMIZE "Enable PGO optimization (use profile)")
# Note1: Builtin strcmp/memcmp was proved to be slower on Mesa than stdlib version.
# Note2: float operation SSE is impacted by the PCSX2 SSE configuration. In particular, flush to zero denormal.
if(NOT MSVC)
add_compile_options(-pipe -fvisibility=hidden -pthread -fno-builtin-strcmp -fno-builtin-memcmp -mfpmath=sse -fno-operator-names)
endif()
if(WIN32)
list(APPEND PCSX2_DEFS TIXML_USE_STL _SCL_SECURE_NO_WARNINGS _UNICODE UNICODE)
endif()
if(USE_VTUNE)
list(APPEND PCSX2_DEFS ENABLE_VTUNE)
@ -252,10 +266,14 @@ endif()
# -Wno-stringop-truncation: Who comes up with these compiler warnings, anyways?
# -Wno-stringop-overflow: Probably the same people as this one...
if (MSVC)
set(DEFAULT_WARNINGS)
else()
set(DEFAULT_WARNINGS -Wall -Wextra -Wno-attributes -Wno-unused-function -Wno-unused-parameter -Wno-missing-field-initializers -Wno-deprecated-declarations -Wno-format -Wno-format-security -Wno-overloaded-virtual)
if (NOT USE_ICC)
list(APPEND DEFAULT_WARNINGS -Wno-unused-value)
endif()
endif()
if (USE_CLANG)
list(APPEND DEFAULT_WARNINGS -Wno-overloaded-virtual)
@ -269,7 +287,7 @@ endif()
# -Wstrict-aliasing=n: to fix one day aliasing issue. n=1/2/3
if (USE_ICC)
set(AGGRESSIVE_WARNING -Wstrict-aliasing)
else()
elseif(NOT MSVC)
set(AGGRESSIVE_WARNING -Wstrict-aliasing -Wstrict-overflow=1)
endif()

View File

@ -68,7 +68,7 @@ function(get_git_version_info)
endfunction()
function(write_svnrev_h)
file(WRITE ${CMAKE_BINARY_DIR}/common/include/svnrev.h "#define SVN_REV ${PCSX2_WC_TIME}ll \n#define SVN_MODS 0\n#define GIT_REV \"${PCSX2_GIT_REV}\"")
file(WRITE ${CMAKE_BINARY_DIR}/common/include/svnrev.h "#define SVN_REV ${PCSX2_WC_TIME}ll \n#define SVN_MODS 0\n#define GIT_REV \"${PCSX2_GIT_REV}\"\n")
endfunction()
function(check_compiler_version version_warn version_err)

View File

@ -1,6 +1,23 @@
#-------------------------------------------------------------------------------
# Search all libraries on the system
#-------------------------------------------------------------------------------
if(EXISTS ${PROJECT_SOURCE_DIR}/.git)
find_package(Git)
endif()
if (WIN32)
# We bundle everything on Windows
add_subdirectory(3rdparty/zlib EXCLUDE_FROM_ALL)
add_subdirectory(3rdparty/libpng EXCLUDE_FROM_ALL)
add_subdirectory(3rdparty/libjpeg EXCLUDE_FROM_ALL)
add_subdirectory(3rdparty/libsamplerate EXCLUDE_FROM_ALL)
add_subdirectory(3rdparty/baseclasses EXCLUDE_FROM_ALL)
add_subdirectory(3rdparty/freetype EXCLUDE_FROM_ALL)
add_subdirectory(3rdparty/portaudio EXCLUDE_FROM_ALL)
add_subdirectory(3rdparty/pthreads4w EXCLUDE_FROM_ALL)
add_subdirectory(3rdparty/soundtouch EXCLUDE_FROM_ALL)
add_subdirectory(3rdparty/wxwidgets3.0 EXCLUDE_FROM_ALL)
add_subdirectory(3rdparty/xz EXCLUDE_FROM_ALL)
else()
## Use cmake package to find module
if (Linux)
find_package(ALSA REQUIRED)
@ -11,9 +28,6 @@ find_package(LibXml2 REQUIRED)
make_imported_target_if_missing(LibXml2::LibXml2 LibXml2)
find_package(Freetype REQUIRED) # GS OSD
find_package(Gettext) # translation tool
if(EXISTS ${PROJECT_SOURCE_DIR}/.git)
find_package(Git)
endif()
find_package(LibLZMA REQUIRED)
make_imported_target_if_missing(LibLZMA::LibLZMA LIBLZMA)
@ -159,6 +173,8 @@ endif()
#----------------------------------------
find_package(HarfBuzz)
endif(WIN32)
set(ACTUALLY_ENABLE_TESTS ${ENABLE_TESTS})
if(ENABLE_TESTS)
if(NOT EXISTS "${CMAKE_SOURCE_DIR}/3rdparty/gtest/CMakeLists.txt")
@ -216,8 +232,10 @@ if(NOT USE_SYSTEM_YAML)
if(EXISTS "${CMAKE_SOURCE_DIR}/3rdparty/yaml-cpp/yaml-cpp/CMakeLists.txt")
message(STATUS "Using bundled yaml-cpp")
add_subdirectory(3rdparty/yaml-cpp/yaml-cpp EXCLUDE_FROM_ALL)
if (NOT MSVC)
# Remove once https://github.com/jbeder/yaml-cpp/pull/815 is merged
target_compile_options(yaml-cpp PRIVATE -Wno-shadow)
endif()
else()
message(FATAL_ERROR "No bundled yaml-cpp was found")
endif()

View File

@ -10,7 +10,6 @@ add_library(Utilities)
# Utilities sources
target_sources(Utilities PRIVATE
VirtualMemory.cpp
AlignedMalloc.cpp
../../include/Utilities/FixedPointTypes.inl
../../include/Utilities/EventSource.inl
../../include/Utilities/SafeArray.inl
@ -20,7 +19,6 @@ target_sources(Utilities PRIVATE
Exceptions.cpp
FastFormatString.cpp
IniInterface.cpp
Linux/LnxHostSys.cpp
Mutex.cpp
PathUtils.cpp
PrecompiledHeader.cpp
@ -76,19 +74,28 @@ target_sources(Utilities PRIVATE
ThreadingInternal.h
)
if(WIN32)
target_sources(Utilities PRIVATE
Windows/WinThreads.cpp
Windows/WinHostSys.cpp
Windows/WinMisc.cpp
Semaphore.cpp
)
if(_M_X86_32)
target_sources(Utilities PRIVATE x86/MemcpyFast.cpp)
endif()
target_link_libraries(Utilities PUBLIC pthreads4w Winmm.lib)
else()
target_sources(Utilities PRIVATE
AlignedMalloc.cpp
Linux/LnxHostSys.cpp
)
if(APPLE)
target_sources(Utilities PRIVATE
Darwin/DarwinThreads.cpp
Darwin/DarwinMisc.cpp
Darwin/DarwinSemaphore.cpp
)
elseif(Windows)
target_sources(Utilities PRIVATE
x86/MemcpyFast.cpp
Windows/WinThreads.cpp
Windows/WinHostSys.cpp
Windows/WinMisc.cpp
)
else()
target_sources(Utilities PRIVATE
Linux/LnxThreads.cpp
@ -96,6 +103,7 @@ else()
Semaphore.cpp
)
endif()
endif()
if(USE_VTUNE)
target_link_libraries(Utilities PUBLIC Vtune::Vtune)

View File

@ -57,7 +57,7 @@ else()
target_sources(x86emitter PRIVATE LnxCpuDetect.cpp)
endif()
target_link_libraries(x86emitter PRIVATE wxWidgets::all)
target_link_libraries(x86emitter PRIVATE Utilities wxWidgets::all)
target_compile_features(x86emitter PUBLIC cxx_std_17)
target_include_directories(x86emitter PUBLIC ../../include PRIVATE ../../include/x86emitter)
target_compile_definitions(x86emitter PUBLIC "${PCSX2_DEFS}")

View File

@ -25,6 +25,9 @@ if(NOT TOP_CMAKE_WAS_SOURCED)
It is advice to delete all wrongly generated cmake stuff => CMakeFiles & CMakeCache.txt")
endif()
if(MSVC)
set(CommonFlags)
else()
set(CommonFlags
-fno-strict-aliasing
-Wstrict-aliasing # Allow to track strict aliasing issue.
@ -33,6 +36,7 @@ set(CommonFlags
-Wno-unknown-pragmas
-DWX_PRECOMP
)
endif()
if(GCC_VERSION VERSION_EQUAL "8.0" OR GCC_VERSION VERSION_GREATER "8.0")
# gs is pretty bad at this
@ -1248,20 +1252,28 @@ target_link_libraries(PCSX2 PRIVATE
yaml-cpp
chdr-static
wxWidgets::all
GTK::gtk
HarfBuzz::HarfBuzz
ZLIB::ZLIB
PkgConfig::SOUNDTOUCH
PCAP::PCAP
PkgConfig::SAMPLERATE
LibXml2::LibXml2
OpenGL::GL
PNG::PNG
Freetype::Freetype
LibLZMA::LibLZMA
${LIBC_LIBRARIES}
)
if(WIN32)
target_link_libraries(PCSX2 PRIVATE
)
else()
target_link_libraries(PCSX2 PRIVATE
GTK::gtk
HarfBuzz::HarfBuzz
OpenGL::GL
PCAP::PCAP
LibXml2::LibXml2
)
endif()
### Generate the resources files
file(MAKE_DIRECTORY ${res_bin})