diff --git a/CMakeLists.txt b/CMakeLists.txt index 15971ec25..e7eb9fc0f 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -4,36 +4,37 @@ project(FEX C CXX ASM) include(CheckIncludeFiles) check_include_files("gdb/jit-reader.h" HAVE_GDB_JIT_READER_H) -option(BUILD_FEX_LINUX_TESTS "Build FEXLinuxTests, requires x86 compiler" FALSE) +option(BUILD_FEX_LINUX_TESTS "Build FEXLinuxTests (requires x86 compiler)" FALSE) option(BUILD_THUNKS "Build thunks" FALSE) option(BUILD_FEXCONFIG "Build FEXConfig" TRUE) option(ENABLE_CLANG_THUNKS "Build thunks with clang" TRUE) -option(ENABLE_IWYU "Enables include what you use program" FALSE) +option(ENABLE_IWYU "Enable the Include What You Use sanitizer" FALSE) option(ENABLE_LTO "Enable LTO with compilation" TRUE) option(ENABLE_XRAY "Enable building with LLVM X-Ray" FALSE) -set(USE_LINKER "" CACHE STRING "Allow overriding the linker path directly") -option(ENABLE_UBSAN "Enables Clang UBSAN" FALSE) -option(ENABLE_ASAN "Enables Clang ASAN" FALSE) -option(ENABLE_TSAN "Enables Clang TSAN" FALSE) -option(ENABLE_COVERAGE "Enables Coverage" FALSE) -option(ENABLE_ASSERTIONS "Enables assertions in build" FALSE) -option(ENABLE_GDB_SYMBOLS "Enables GDBSymbols integration support" ${HAVE_GDB_JIT_READER_H}) -option(ENABLE_STRICT_WERROR "Enables stricter -Werror for CI" FALSE) -option(ENABLE_WERROR "Enables -Werror" FALSE) -option(ENABLE_JEMALLOC "Enables jemalloc allocator" TRUE) -option(ENABLE_JEMALLOC_GLIBC_ALLOC "Enables jemalloc glibc allocator" TRUE) -option(ENABLE_OFFLINE_TELEMETRY "Enables FEX offline telemetry" TRUE) -option(ENABLE_COMPILE_TIME_TRACE "Enables time trace compile option" FALSE) -option(ENABLE_LIBCXX "Enables LLVM libc++" FALSE) -option(ENABLE_CCACHE "Enables ccache for compile caching" TRUE) -option(ENABLE_VIXL_SIMULATOR "Enable use of VIXL simulator for emulation (only useful for CI testing)" FALSE) -option(ENABLE_VIXL_DISASSEMBLER "Enables debug disassembler output with VIXL" FALSE) -option(USE_LEGACY_BINFMTMISC "Uses legacy method of setting up binfmt_misc" FALSE) -option(ENABLE_FEXCORE_PROFILER "Enables use of the FEXCore timeline profiling capabilities" FALSE) -set(FEXCORE_PROFILER_BACKEND "gpuvis" CACHE STRING "Set which backend to use for the FEXCore profiler (gpuvis, tracy)") +set(USE_LINKER "" CACHE STRING "Path to a custom linker program") +option(ENABLE_UBSAN "Enable the Clang Undefined Behavior Sanitizer" FALSE) +option(ENABLE_ASAN "Enable the Clang Address Sanitizer" FALSE) +option(ENABLE_TSAN "Enable the Clang Thread Sanitizer" FALSE) +option(ENABLE_COVERAGE "Enable Code Coverage" FALSE) +option(ENABLE_ASSERTIONS "Enable debug assertions" FALSE) +option(ENABLE_GDB_SYMBOLS "Enable GDBSymbols integration support" ${HAVE_GDB_JIT_READER_H}) +option(ENABLE_STRICT_WERROR "Enable stricter -Werror" FALSE) +option(ENABLE_WERROR "Enable -Werror" FALSE) +option(ENABLE_JEMALLOC "Enable jemalloc allocator" TRUE) +option(ENABLE_JEMALLOC_GLIBC_ALLOC "Enable jemalloc glibc allocator" TRUE) +option(ENABLE_OFFLINE_TELEMETRY "Enable FEX offline telemetry" TRUE) +option(ENABLE_COMPILE_TIME_TRACE "Enable time trace compile option" FALSE) +option(ENABLE_LIBCXX "Use LLVM's libc++ instead of the GNU libstdc++" FALSE) +option(ENABLE_CCACHE "Enable ccache for build caching" TRUE) +option(ENABLE_VIXL_SIMULATOR "Use the VIXL simulator for emulation (only useful for CI testing)" FALSE) +option(ENABLE_VIXL_DISASSEMBLER "Enable debug disassembler output with VIXL" FALSE) +option(USE_LEGACY_BINFMTMISC "Use legacy method of setting up binfmt_misc" FALSE) +option(ENABLE_FEXCORE_PROFILER "Enable FEXCore's timeline profiling capabilities" FALSE) +set(FEXCORE_PROFILER_BACKEND "gpuvis" CACHE STRING "Set which backend to use for FEXCore's profiler") +set_property(CACHE FEXCORE_PROFILER_BACKEND PROPERTY STRINGS gpuvis tracy) option(ENABLE_GLIBC_ALLOCATOR_HOOK_FAULT "Enables glibc memory allocation hooking with fault for CI testing") -option(USE_PDB_DEBUGINFO "Builds debug info in PDB format" FALSE) -option(BUILD_STEAM_SUPPORT "Builds FEX for integration into Steam" FALSE) +option(USE_PDB_DEBUGINFO "Build debug info in PDB format" FALSE) +option(BUILD_STEAM_SUPPORT "Enable Steam integration" FALSE) set(X86_32_TOOLCHAIN_FILE "${CMAKE_CURRENT_SOURCE_DIR}/Data/CMake/toolchain_x86_32.cmake" CACHE FILEPATH "Toolchain file for the (cross-)compiler targeting i686") set(X86_64_TOOLCHAIN_FILE "${CMAKE_CURRENT_SOURCE_DIR}/Data/CMake/toolchain_x86_64.cmake" CACHE FILEPATH "Toolchain file for the (cross-)compiler targeting x86_64") @@ -85,7 +86,7 @@ if (ENABLE_FEXCORE_PROFILER) # This pulls in libbacktrace which allocators in global constructors (before FEX can set up its allocator hooks) add_definitions(-DTRACY_NO_CALLSTACK=1) if (MINGW) - message(FATAL_ERROR "Tracy profiler not supported") + message(FATAL_ERROR "Tracy profiler not supported on MinGW") endif() else() message(FATAL_ERROR "Unknown FEXCore profiler backend ${FEXCORE_PROFILER_BACKEND}")