aboutsummaryrefslogtreecommitdiff
path: root/cmake/Platforms/x86_64.cmake
blob: 9e727cfb0deb02e3965ae1ab03a7f1c73b187ea2 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
execute_process(COMMAND "x86_64-none-elf-g++" "-print-file-name=crtbegin.o"
  OUTPUT_VARIABLE CRT_BEGIN
  ERROR_QUIET
)
string(STRIP "${CRT_BEGIN}" CRT_BEGIN)
mark_as_advanced(CRT_BEGIN)

string(REGEX REPLACE "/crtbegin.o" "" CMAKE_SYSROOT "${CRT_BEGIN}")
mark_as_advanced(CMAKE_SYSROOT)

set(CMAKE_CXX_FLAGS_INIT "-m64 -mno-red-zone -mcmodel=large")
set(CMAKE_EXE_LINKER_FLAGS_INIT "-nostartfiles")
set(CMAKE_CXX_LINK_EXECUTABLE
  "<CMAKE_CXX_COMPILER> \
  <FLAGS> \
  <CMAKE_CXX_LINK_FLAGS> \
  <LINK_FLAGS> \
  ${CMAKE_SYSROOT}/crtbegin.o \
  <OBJECTS> \
  -o <TARGET> \
  <LINK_LIBRARIES> \
  ${CMAKE_SYSROOT}/crtend.o"
)