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 dbgshim library")
+set(DBGSHIM_DIR "" CACHE FILEPATH "Path to dbgshim library directory")
+
if (WIN32)
set(CMAKE_CXX_STANDARD 11)
else()
`-DCLR_BIN_DIR=$HOME/git/coreclr/bin/Product/Linux.x64.Debug` path to coreclr build result directory
- `-DCORECLR_SET_RPATH=/usr/shared/dotnet/Microsoft.NETCore.App/2.0.0` path where `libdbgshim.so` is located
-
4. The above commands create `./bin` directory with `netcoredbg` binary and additional libraries.
Now running the debugger with `--help` option should look like this:
-DCMAKE_INSTALL_PREFIX=%{install_prefix} \
-DCMAKE_BUILD_TYPE=Release \
-DCLR_CMAKE_LINUX_ID=tizen \
- -DCORECLR_SET_RPATH=$NETCOREAPPDIR \
- -DBUILD_MANAGED=OFF \
- -DDBGSHIM_INSTALL=OFF
+ -DDBGSHIM_DIR=$NETCOREAPPDIR \
+ -DBUILD_MANAGED=OFF
make %{?jobs:-j%jobs}
%dotnet_build ../netcoredbg/src/debug/netcoredbg
set(CORECLR_PRODUCT ${CLR_DIR}/bin/Product/${CORECLR_PLATFORM})
-set(DBGSHIM_LOCATION ${CLR_BIN_DIR}/${CMAKE_SHARED_LIBRARY_PREFIX}dbgshim${CMAKE_SHARED_LIBRARY_SUFFIX})
-
-add_library(dbgshim SHARED IMPORTED)
-set_target_properties(dbgshim PROPERTIES IMPORTED_LOCATION ${DBGSHIM_LOCATION})
+if (NOT DBGSHIM_DIR STREQUAL "")
+ add_definitions(-DDBGSHIM_DIR="${DBGSHIM_DIR}")
+else()
+ set(DBGSHIM_LOCATION ${CLR_BIN_DIR}/${CMAKE_SHARED_LIBRARY_PREFIX}dbgshim${CMAKE_SHARED_LIBRARY_SUFFIX})
+endif()
add_library(corguids STATIC IMPORTED)
set_target_properties(corguids PROPERTIES IMPORTED_LOCATION ${CLR_BIN_DIR}/lib/${CMAKE_STATIC_LIBRARY_PREFIX}corguids${CMAKE_STATIC_LIBRARY_SUFFIX})
set(CMAKE_INCLUDE_CURRENT_DIR ON)
-# Set the RPATH of debugger so that it can find dependencies without needing to set LD_LIBRARY_PATH
-# For more information: http://www.cmake.org/Wiki/CMake_RPATH_handling.
-if (CORECLR_SET_RPATH)
- set(CMAKE_INSTALL_RPATH "${CORECLR_SET_RPATH}")
-else()
- set(CMAKE_BUILD_WITH_INSTALL_RPATH TRUE)
- if(CLR_CMAKE_PLATFORM_DARWIN)
- set(CMAKE_INSTALL_RPATH "@loader_path")
- else()
- set(CMAKE_INSTALL_RPATH "\$ORIGIN")
- endif()
-endif()
-
if (NOT WIN32)
add_definitions(-DPAL_STDCPP_COMPAT)
endif()
endif()
install(TARGETS netcoredbg DESTINATION ${CMAKE_INSTALL_PREFIX})
-if (DBGSHIM_INSTALL)
- install(FILES ${DBGSHIM_LOCATION} DESTINATION ${CMAKE_INSTALL_PREFIX})
+if (DBGSHIM_LOCATION)
+ install(FILES ${DBGSHIM_LOCATION} DESTINATION ${CMAKE_INSTALL_PREFIX})
endif()
# SymbolReader
CreateDebuggingInterfaceFromVersionEx(nullptr),
m_module(nullptr)
{
+#ifdef DBGSHIM_DIR
+ std::string libName(DBGSHIM_DIR);
+ libName += DIRECTORY_SEPARATOR_STR_A;
+#else
std::string exe = GetExeAbsPath();
std::size_t dirSepIndex = exe.rfind(DIRECTORY_SEPARATOR_STR_A);
if (dirSepIndex == std::string::npos)
return;
std::string libName = exe.substr(0, dirSepIndex + 1);
+#endif
#ifdef WIN32
libName += "dbgshim.dll";