mirror of
https://github.com/JakeHillion/object-introspection.git
synced 2024-11-09 21:24:14 +00:00
b7b9ac1536
Summary: Pull Request resolved: https://github.com/facebookexperimental/object-introspection/pull/507 OI is currently completely incompatible with anything except `x86_64`. Changing that generally is a big effort, but `oilgen` should work on other architectures. Begin adding some support for `aarch64` architecture. This change sets up a file structure for architecture support. It pulls the 2 functions needed to make `Descs.{h,cpp}` architecture agnostic into architecture specific files for `x86_64` and `aarch64`. This enables `oilgen` (the binary) to build. At this stage `oilgen` is unable to generate working code for `aarch64`, but at least this is a step in the right direction. Differential Revision: D61661524
45 lines
1.4 KiB
CMake
45 lines
1.4 KiB
CMake
# Set a default build type if none was specified
|
|
if(NOT CMAKE_BUILD_TYPE AND NOT CMAKE_CONFIGURATION_TYPES)
|
|
message(STATUS "Setting build type to 'RelWithDebInfo' as none was specified.")
|
|
set(CMAKE_BUILD_TYPE
|
|
RelWithDebInfo
|
|
CACHE STRING "Choose the type of build." FORCE)
|
|
# Set the possible values of build type for cmake-gui, ccmake
|
|
set_property(
|
|
CACHE CMAKE_BUILD_TYPE
|
|
PROPERTY STRINGS
|
|
"Debug"
|
|
"Release"
|
|
"MinSizeRel"
|
|
"RelWithDebInfo")
|
|
endif()
|
|
|
|
# Generate compile_commands.json to make it easier to work with clang based tools
|
|
set(CMAKE_EXPORT_COMPILE_COMMANDS ON)
|
|
# Include implicit directories in the compile commands file
|
|
set(CMAKE_CXX_STANDARD_INCLUDE_DIRECTORIES ${CMAKE_CXX_IMPLICIT_INCLUDE_DIRECTORIES})
|
|
|
|
option(ENABLE_IPO "Enable Interprocedural Optimization, aka Link Time Optimization (LTO)" OFF)
|
|
|
|
if(ENABLE_IPO)
|
|
include(CheckIPOSupported)
|
|
check_ipo_supported(
|
|
RESULT
|
|
result
|
|
OUTPUT
|
|
output)
|
|
if(result)
|
|
set(CMAKE_INTERPROCEDURAL_OPTIMIZATION ON)
|
|
else()
|
|
message(SEND_ERROR "IPO is not supported: ${output}")
|
|
endif()
|
|
endif()
|
|
if(CMAKE_CXX_COMPILER_ID MATCHES ".*Clang")
|
|
add_compile_options(-fcolor-diagnostics)
|
|
elseif(CMAKE_CXX_COMPILER_ID STREQUAL "GNU")
|
|
add_compile_options(-fdiagnostics-color=auto)
|
|
else()
|
|
message(STATUS "No colored compiler diagnostic set for '${CMAKE_CXX_COMPILER_ID}' compiler.")
|
|
endif()
|
|
|