2018-08-29 02:55:43 +02:00
cmake_minimum_required ( VERSION 3.8.2 )
2014-04-25 18:57:00 +02:00
2017-10-09 20:00:45 +02:00
option ( WITH_GDB "WITH_GDB" OFF )
option ( WITHOUT_LLVM "WITHOUT_LLVM" OFF )
2018-02-19 04:55:46 +01:00
option ( USE_NATIVE_INSTRUCTIONS "USE_NATIVE_INSTRUCTIONS makes rpcs3 compile with -march=native, which is useful for local builds, but not good for packages." ON )
2017-06-12 20:45:29 +02:00
if ( WITH_GDB )
add_definitions ( -DWITH_GDB_DEBUGGER )
endif ( )
2018-06-12 20:03:53 +02:00
set ( ASMJIT_EMBED TRUE )
set ( ASMJIT_DIR "${CMAKE_CURRENT_LIST_DIR}/asmjit" CACHE PATH "Location of 'asmjit'" )
include ( "${ASMJIT_DIR}/CMakeLists.txt" )
2014-04-25 18:57:00 +02:00
2014-07-10 18:46:10 +02:00
if ( NOT CMAKE_BUILD_TYPE )
message ( STATUS "No build type selected, default to Release" )
set ( CMAKE_BUILD_TYPE "Release" )
endif ( )
if ( NOT CMAKE_SIZEOF_VOID_P EQUAL 8 )
message ( FATAL_ERROR "RPCS3 can only be compiled on 64-bit platforms." )
endif ( )
2017-03-02 22:49:42 +01:00
find_program ( CCACHE_FOUND ccache )
if ( CCACHE_FOUND )
set_property ( GLOBAL PROPERTY RULE_LAUNCH_COMPILE ccache )
set_property ( GLOBAL PROPERTY RULE_LAUNCH_LINK ccache )
endif ( )
2018-06-14 21:39:48 +02:00
find_package ( ZLIB QUIET )
if ( NOT ZLIB_FOUND )
add_subdirectory ( 3rdparty/zlib EXCLUDE_FROM_ALL )
set ( ZLIB_INCLUDE_DIR "${CMAKE_CURRENT_SOURCE_DIR}/3rdparty/zlib" "${CMAKE_CURRENT_BINARY_DIR}/3rdparty/zlib" CACHE INTERNAL "" )
set ( ZLIB_LIBRARY zlibstatic )
endif ( )
2016-07-01 06:07:16 +02:00
# Select the version of libpng to use, default is builtin
if ( NOT USE_SYSTEM_LIBPNG )
2018-06-10 20:37:34 +02:00
# We use libpng's static library and don't need to build the shared library and run the tests
set ( PNG_SHARED OFF CACHE BOOL "Build shared lib" FORCE )
set ( PNG_TESTS OFF CACHE BOOL "Build libpng tests" FORCE )
set ( SKIP_INSTALL_ALL ON )
2018-05-02 01:10:19 +02:00
add_subdirectory ( 3rdparty/libpng EXCLUDE_FROM_ALL )
2016-07-01 06:07:16 +02:00
endif ( )
2016-03-22 22:26:37 +01:00
2018-06-07 18:38:19 +02:00
add_subdirectory ( 3rdparty/pugixml EXCLUDE_FROM_ALL )
2015-08-07 23:53:39 +02:00
# TODO: do real installation, including copying directory structure
set ( CMAKE_RUNTIME_OUTPUT_DIRECTORY_RELEASE "${PROJECT_BINARY_DIR}/bin" )
set ( CMAKE_RUNTIME_OUTPUT_DIRECTORY_DEBUG "${PROJECT_BINARY_DIR}/bin" )
2017-06-22 22:05:32 +02:00
set ( CMAKE_RUNTIME_OUTPUT_DIRECTORY_RELWITHDEBINFO "${PROJECT_BINARY_DIR}/bin" )
2017-06-12 20:45:29 +02:00
2018-05-02 01:10:19 +02:00
add_subdirectory ( Vulkan EXCLUDE_FROM_ALL )
add_subdirectory ( rpcs3 )
2017-04-29 02:57:12 +02:00
include_directories ( 3rdparty/hidapi/hidapi )
if ( APPLE )
2018-05-02 01:10:19 +02:00
add_subdirectory ( 3rdparty/hidapi/mac EXCLUDE_FROM_ALL )
2017-04-29 02:57:12 +02:00
#list(APPEND LIBS hidapi)
2018-05-28 22:16:29 +02:00
elseif ( CMAKE_SYSTEM MATCHES "Linux" )
2018-05-02 01:10:19 +02:00
add_subdirectory ( 3rdparty/hidapi/linux EXCLUDE_FROM_ALL )
2018-08-29 13:27:10 +02:00
elseif ( WIN32 )
2018-05-02 01:10:19 +02:00
add_subdirectory ( 3rdparty/hidapi/windows EXCLUDE_FROM_ALL )
2017-04-29 02:57:12 +02:00
else ( )
2018-05-02 01:10:19 +02:00
add_subdirectory ( 3rdparty/hidapi/libusb EXCLUDE_FROM_ALL )
2017-04-29 02:57:12 +02:00
#list(APPEND LIBS hidapi-libusb)
endif ( )
2018-05-15 02:27:50 +02:00
2018-03-24 22:16:05 +01:00
set ( YAML_CPP_BUILD_TESTS OFF CACHE BOOL "Enable testing" FORCE )
set ( YAML_CPP_BUILD_TOOLS OFF CACHE BOOL "Enable parse tools" FORCE )
set ( YAML_CPP_BUILD_CONTRIB OFF CACHE BOOL "Enable contrib stuff in library" FORCE )
add_subdirectory ( 3rdparty/yaml-cpp EXCLUDE_FROM_ALL )
2018-05-15 02:27:50 +02:00
set ( XXHASH_BUNDLED_MODE ON )
set ( BUILD_SHARED_LIBS OFF CACHE BOOL "Make xxHash build static libs" )
add_subdirectory ( 3rdparty/xxHash/cmake_unofficial )