MerryMage
52a9af3dca
CMakeLists: Rework architecture detection
...
* Also only enable xybak/vixl on appropriate architectures
2021-03-02 20:41:38 +00:00
MerryMage
b841ce1df5
CMakeLists: Increase maximum bracket depth for Clang
...
See also: https://reviews.llvm.org/D86936
Bracket depth limits size of fold expression which in turn limits size of std::array initialization via CTAD
2021-02-16 20:12:10 +00:00
MerryMage
e85a08ec34
CMakeLists: MSVC: Weaken warning level for externals
2020-05-26 20:52:06 +01:00
MerryMage
d0075f4ea6
print_info: Use LLVM to disassemble A32
2020-05-17 22:30:46 +01:00
MerryMage
69061d87fa
exception_handler_windows: Ignore irrelevant exceptions
2020-04-23 20:58:24 +01:00
MerryMage
e41fef4a2a
CMakeLists: option only works for boolean settings
2020-04-22 21:06:18 +01:00
MerryMage
7c917f1c12
CMakeLists: Add DYNARMIC_FRONTENDS option
...
Allows library user to select which frontends to enable
2020-04-22 21:06:18 +01:00
MerryMage
2d348d2d68
backend/x64: Add macOS exception handler with fastmem support
2020-04-22 21:06:18 +01:00
MerryMage
6edc95e9eb
CMakeLists: Put -Wfatal-errors behind a CMake flag
2020-04-22 21:04:23 +01:00
Lioncash
9d33ea3136
CMakeLists: Specify the /volatile flag with standard-conforming semantics
...
Makes Windows builds more standard-compliant. Given we currently make no
use of volatile, and the libraries we currently use don't use it any
meaningful way, this is safe to specify without worrying.
2020-04-22 21:02:47 +01:00
Lioncash
0d3375fc22
CMakeLists: Add /Zc:externConstexpr compilation flag
...
Improves standard conformance on Windows builds.
2020-04-22 21:02:47 +01:00
Lioncash
3b2b47b522
CMakeLists: Remove setting of CMAKE_WARN_DEPRECATED
...
CMake documentation states:
"If this variable is not set, CMake behaves as if it were set to TRUE."
So this isn't needed, as it's the default behavior.
2020-04-22 21:02:47 +01:00
Lioncash
df996a8375
CMakeLists: Turn generic target path into an error
...
There's currently no way this path can occur and result in any
functioning executable. The recompiler backends are platform-specific.
If those platforms aren't available, then it's quite literally
impossible to use this library for anything meaningful. Instead of
defining a generic architecture and continuing on, notify the developer
that their platform is not currently supported.
2020-04-22 21:02:47 +01:00
Lioncash
750ceb9701
CMakeLists: Remove detection of 32-bit platforms
...
We currently have no plans to add 32-bit host architecture support, so
we don't even need to check for these platforms.
2020-04-22 21:02:47 +01:00
MerryMage
d5b9c4a4bb
block_of_code: Hide NX support behind compiler flag
...
Systems that require W^X can use the DYNARMIC_ENABLE_NO_EXECUTE_SUPPORT cmake option.
2020-04-22 20:53:46 +01:00
Lioncash
ed11c7d904
CMakeLists: Add detection for Aarch64 compiler environments
...
Just closes a small hole in architecture detection for the ARM family.
2020-04-22 20:46:17 +01:00
Lioncash
cd0b71159a
CMake: Make FindUnicorn introduce a unicorn target
...
Makes the find module do all the work of properly setting up the target instead of needing to do it in the main CMakeLists file.
2020-04-22 20:46:16 +01:00
MerryMage
e97581d063
fuzz_with_unicorn: Print AArch64 disassembly
2020-04-22 20:46:14 +01:00
MerryMage
a90e4955ab
CMakeLists: Ignore warnings within xbyak
2020-04-22 20:46:14 +01:00
MerryMage
30936f5e94
travis: Test with disabled CPU feature detection
...
Ensure that fallbacks are working correctly.
2020-04-22 20:44:37 +01:00
MerryMage
a59e9ad9c6
travis: Run A64 tests
2020-04-22 20:42:45 +01:00
MerryMage
d5725de26a
tests/A64: Fuzz against unicorn
2020-04-22 20:42:45 +01:00
MerryMage
cde2d48eb9
CMakeLists: CMAKE_CXX_STANDARD as no effect on MSVC until CMake 3.10
...
We add the /std:c++latest flag to DYNARMIC_CXX_FLAGS to fix this.
2020-04-22 20:39:27 +01:00
MerryMage
89e9ce8aff
Bump requirements to C++17
2020-04-22 20:27:15 +01:00
MerryMage
0af1e7723d
CMakeLists: Fixup boost
...
* boost is part of the public interface.
* Consider boost a system library so warnings from boost do not cause a build failure.
* If the parent project defines boost, use that.
2020-04-22 20:26:40 +01:00
MerryMage
d00ce34432
CMakeLists: Default to a Release build
2020-04-22 20:26:12 +01:00
MerryMage
5beb61913b
CMakeLists: Remove unnecessary -msse3 option
2017-07-08 16:33:20 +01:00
Yuri Kunde Schlesner
8f15e3f70c
CMakeLists: Enable stricter C++ conformance mode in MSVC
2017-06-12 07:57:46 +01:00
Yuri Kunde Schlesner
38eb7e0314
emit_x64: Use alternative Xbyak names for and, or, xor
...
Also enabled XBYAK_NO_OP_NAMES, allowing us to stop using
-fno-operator-names.
2017-06-12 07:57:46 +01:00
Lioncash
9906be746f
CMakeLists: Make boost an interface library target
...
Gets rid of the use of a non-target include and makes libraries
explicitly link against the identifier name in order to get includes.
2017-03-04 11:52:32 +00:00
Lioncash
f9e7e85308
externals: Make catch an interface target
...
Eliminates top-level inclusion of the headers with include_directories()
and instead utilizes it on a by-target basis using target_include_directories().
2017-02-26 13:43:47 +00:00
Lioncash
c92a6a5eb7
CMakeLists: Change set into a list append
...
Same thing, less repetition.
Also puts quotes around the added path to correctly handle any spaces in paths.
2017-02-23 15:13:19 +00:00
MerryMage
e8b6e76fbf
CMakeLists: Drop -Wno-unused-parameter
2017-02-22 23:52:18 +00:00
Lioncash
a2d4db575f
CMakeLists: Drop FATAL_ERROR from cmake_minimum_required
...
This is ignored by CMake 2.6 and higher.
2017-02-22 20:24:03 +00:00
MerryMage
a77710e5cf
CMake: Add option DYNARMIC_WARNINGS_AS_ERRORS
2017-02-04 20:31:10 +00:00
MerryMage
cc58666c06
CMakeLists: Use target_compile_options intead of add_compile_options
2016-12-19 00:48:25 +00:00
MerryMage
0e8b626d87
CMakeLists: Globally disable MSVC warning C4592
...
C4592: Symbol will be dynamically initialized (implementation limitation)
2016-12-15 21:09:55 +00:00
MerryMage
91e851a991
CMakeLists: Enable /W4 on MSVC
2016-12-15 20:52:23 +00:00
Yuri Kunde Schlesner
34e19f135c
CMake: Re-use external xbyak target if present ( #62 )
2016-12-12 14:23:42 +00:00
Mat M
1dc1eaa452
CMakeLists: Enable more warnings for MSVC ( #58 )
2016-12-05 12:45:35 +00:00
MerryMage
52fdec5892
CMakeLists: Add support for LLVM on Windows
...
The LLVM project provides a clang-based MSVC compatible toolset for
Microsoft Visual Studio. This suite is sometimes refered to as "clang-cl".
This patch adds a few compiler flags to support this toolset.
2016-12-03 16:12:51 +00:00
MerryMage
2c1818ece9
CMakeLists: Downgrade -msse4.1 to -msse3.
...
Virtually everyone supports SSE3 except for first-generation devices.
2016-09-11 16:21:35 +01:00
Mat M
858796a029
Eliminate variable shadowing warnings with MSVC ( #17 )
2016-09-04 11:30:57 +01:00
MerryMage
320db36219
CMakeLists: Add DYNARMIC_TESTS option so one can turn off testing
2016-09-02 12:29:19 +01:00
MerryMage
f1c988aa8d
CMakeLists: Lower cmake version requirement from 3.4.1 to 3.2
2016-09-02 12:26:47 +01:00
Lioncash
ee4b30eee4
externals: Add fmt as a submodule
2016-08-26 13:13:19 +01:00
MerryMage
ed3a686d1d
Implement public header files
2016-08-26 00:44:50 +01:00
MerryMage
1f329b2fbf
CMakeLists: /DNOMINMAX for MSVC
2016-08-25 17:37:35 +01:00
MerryMage
e32812cd00
Port x64 backend to xbyak
2016-08-25 16:18:17 +01:00
Lioncash
0ebad78432
CMakeLists: Warn when casting away cv-qualifiers from pointers
...
Warns whenever this type of casting isn't done via const_cast.
2016-08-22 23:24:02 +01:00