forked from Samsung/netcoredbg
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathCMakeLists.txt
49 lines (40 loc) · 1.74 KB
/
CMakeLists.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
cmake_minimum_required(VERSION 2.8.12.2)
project(netcoredbg)
set(CLR_DIR "${CMAKE_SOURCE_DIR}/../coreclr" CACHE FILEPATH "Path to coreclr directory")
set(CLR_BIN_DIR "" CACHE FILEPATH "Path to coreclr bin directory")
set(BUILD_MANAGED ON CACHE BOOL "Build managed part")
set(DBGSHIM_INSTALL ON CACHE BOOL "Install libdbgshim")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11 -Wall -Wno-null-conversion")
function(clr_unknown_arch)
message(FATAL_ERROR "Only AMD64, ARM64, ARM, ARMEL, I386 and WASM are supported")
endfunction()
# Follow order as in root CoreCLR CMakeLists.txt
include(detectplatform.cmake) # from root
include(platformdefinitions.cmake) # from root
include(compileoptions.cmake) # disabled setting arm compiler flags in Tizen build
include(clrdefinitions.cmake)
if (NOT IS_DIRECTORY "${CLR_DIR}")
message(FATAL_ERROR "Unable to find CoreCLR directory")
endif()
set(CLR_CONFIGURATION_TYPES "Debug;Checked;Release;RelWithDebInfo" CACHE STRING "")
if ("${CLR_BIN_DIR}" STREQUAL "")
if (CMAKE_SYSTEM_NAME STREQUAL Darwin)
set(TARGET_OS_NAME "OSX")
elseif (CMAKE_SYSTEM_NAME STREQUAL Linux)
set(TARGET_OS_NAME "Linux")
endif()
# TODO: Search for CMAKE_BUILD_TYPE configuration first
# TODO: CLR_CMAKE_TARGET_ARCH may be armel
foreach(CONFIG IN LISTS CLR_CONFIGURATION_TYPES)
set(CLR_BIN_DIR ${CLR_DIR}/bin/Product/${TARGET_OS_NAME}.${CLR_CMAKE_TARGET_ARCH}.${CONFIG})
if (IS_DIRECTORY "${CLR_BIN_DIR}")
break()
endif()
endforeach()
if (IS_DIRECTORY "${CLR_BIN_DIR}")
message(STATUS "CoreCLR bin directory: " ${CLR_BIN_DIR})
else()
message(FATAL_ERROR "Unable to find CoreCLR bin directory")
endif()
endif()
add_subdirectory(src/debug/netcoredbg)