Skip to content

Commit 9efc655

Browse files
committed
πŸ‘©β€πŸ’» Added Linux support to CMake
1 parent 81728c6 commit 9efc655

File tree

1 file changed

+20
-2
lines changed

1 file changed

+20
-2
lines changed

β€Žsrc/CMakeLists.txt

Lines changed: 20 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,9 @@ project(dart_dll VERSION 0.1)
44

55
set(DART_DIR "${PROJECT_SOURCE_DIR}/../dart-sdk/sdk")
66

7-
set(CMAKE_CXX_STANDARD 11)
7+
set(CMAKE_CXX_STANDARD 17)
88
set(CMAKE_CXX_STANDARD_REQUIRED True)
9+
set(CMAKE_CXX_EXTENSIONS )
910

1011
add_library(dart_dll SHARED
1112
dart_dll.cpp
@@ -16,8 +17,13 @@ target_include_directories(dart_dll PUBLIC
1617
"${DART_DIR}/runtime"
1718
)
1819

20+
if(WIN32)
21+
set(LIB_PREFIX "lib")
22+
endif()
23+
24+
1925
find_library(LIB_DART
20-
NAMES libdart
26+
NAMES "${LIB_PREFIX}dart"
2127
HINTS "${DART_DIR}/out/ReleaseX64/obj/runtime/bin"
2228
)
2329

@@ -52,6 +58,18 @@ if(WIN32)
5258
Psapi
5359
shlwapi
5460
)
61+
elseif(LINUX)
62+
set(THREADS_PREFER_PTHREAD_FLAG ON)
63+
set(CMAKE_C_COMPILER "${DART_DIR}/buildtools/linux-x64/clang/bin/clang")
64+
set(CMAKE_CXX_COMPILER "${DART_DIR}/buildtools/linux-x64/clang/bin/clang++")
65+
set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} -nostdlib++ ${DART_DIR}/buildtools/linux-x64/clang/lib/x86_64-unknown-linux-gnu/libc++.a")
66+
#set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} -stdlib=libc++ -lc++abi")
67+
68+
find_package(Threads REQUIRED)
69+
target_link_libraries(dart_dll
70+
Threads::Threads
71+
${CMAKE_DL_LIBS}
72+
)
5573
endif()
5674

5775
target_link_libraries(dart_dll

0 commit comments

Comments
Β (0)