Skip to content

Commit dc953f9

Browse files
committed
chore: Integrate build fixes
1 parent 208d32a commit dc953f9

File tree

7 files changed

+38
-14
lines changed

7 files changed

+38
-14
lines changed

.github/workflows/build.yaml

+1-1
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ jobs:
3030
run: dart ./scripts/build_helpers/bin/build_dart.dart -v
3131
- uses: threeal/[email protected]
3232
- name: Build Shared Library
33-
run: cmake --build build --config release
33+
run: cmake --build build --config release -DBUILD_SAMPLES=OFF
3434
- name: Assemble artifacts
3535
run: dart ./scripts/build_helpers/bin/assemble_artifacts.dart
3636
- name: 'Upload Artifact'

.gitignore

+4-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,7 @@
11
dart-sdk/*
22
.build/*
33
build/*
4-
artifacts/*
4+
artifacts/*
5+
depot_tools/*
6+
out/*
7+
.vs

CMakeLists.txt

+11-1
Original file line numberDiff line numberDiff line change
@@ -2,10 +2,20 @@ cmake_minimum_required(VERSION 3.21)
22

33
project(DartSharedLibrary VERSION 0.1)
44

5+
option(BUILD_SMAPLES "Build the Sampels" ON)
6+
57
set(CMAKE_CXX_STANDARD 11)
68
set(CMAKE_CXX_STANDARD_REQUIRED True)
79
set(DART_DLL_DIR "${PROJECT_SOURCE_DIR}/src")
810
set(DART_DIR "${PROJECT_SOURCE_DIR}/dart-sdk/sdk")
911

12+
set(OUTPUT_DEBUG "${OUTPUT_PATH_EXT}/Debug")
13+
set(OUTPUT_RELEASE "${OUTPUT_PATH_EXT}/Release")
14+
set(CMAKE_LIBRARY_OUTPUT_DIRECTORY "${PROJECT_SOURCE_DIR}/out/$<$<CONFIG:DEBUG>:${OUTPUT_DEBUG}>$<$<CONFIG:RELEASE>:${OUTPUT_RELEASE}>")
15+
set(EXECUTABLE_OUTPUT_PATH "${PROJECT_SOURCE_DIR}/out/${OUTPUT_PATH_EXT}/${CMAKE_BUILD_TYPE}")
16+
set(LIBRARY_OUTPUT_DIRECTORY "${PROJECT_SOURCE_DIR}/out/${OUTPUT_PATH_EXT}/${CMAKE_BUILD_TYPE}")
17+
1018
add_subdirectory(src)
11-
add_subdirectory(examples)
19+
if(BUILD_SAMPLES)
20+
add_subdirectory(examples)
21+
endif()

examples/realtime_example/CMakeLists.txt

+4-1
Original file line numberDiff line numberDiff line change
@@ -42,4 +42,7 @@ target_link_libraries(realtime_example PUBLIC dart_dll cute)
4242

4343
if (MSVC)
4444
set_property(TARGET realtime_example PROPERTY VS_DEBUGGER_WORKING_DIRECTORY $<TARGET_FILE_DIR:realtime_example>)
45-
endif()
45+
endif()
46+
47+
48+
set(EXECUTABLE_OUTPUT_PATH "${EXECUTABLE_OUTPUT_PATH}/realtime_example")

examples/simple_example/CMakeLists.txt

+4-4
Original file line numberDiff line numberDiff line change
@@ -15,10 +15,10 @@ add_custom_command(TARGET simple_example POST_BUILD
1515
COMMAND_EXPAND_LISTS
1616
)
1717

18-
add_dependencies(simple_example ALWAYS_DO_POST_BUILD)
19-
2018
target_link_libraries(simple_example PUBLIC dart_dll)
2119

2220
if (MSVC)
23-
set_property(TARGET simple_example PROPERTY VS_DEBUGGER_WORKING_DIRECTORY $<TARGET_FILE_DIR:simple_example>)
24-
endif()
21+
set_property(TARGET realtime_example PROPERTY VS_DEBUGGER_WORKING_DIRECTORY $<TARGET_FILE_DIR:simple_example>)
22+
endif()
23+
24+
set(EXECUTABLE_OUTPUT_PATH "${EXECUTABLE_OUTPUT_PATH}/simple_example")

examples/simple_example_ffi/CMakeLists.txt

+4
Original file line numberDiff line numberDiff line change
@@ -16,4 +16,8 @@ add_custom_command(TARGET simple_example_ffi POST_BUILD
1616
COMMAND_EXPAND_LISTS
1717
)
1818

19+
if (MSVC)
20+
set_property(TARGET realtime_example PROPERTY VS_DEBUGGER_WORKING_DIRECTORY $<TARGET_FILE_DIR:simple_example_ffi>)
21+
endif()
22+
1923
target_link_libraries(simple_example_ffi PUBLIC dart_dll)

src/CMakeLists.txt

+10-6
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
cmake_minimum_required(VERSION 3.15)
1+
cmake_minimum_required(VERSION 3.21)
22

33
project(dart_dll VERSION 0.1.2)
44

@@ -14,16 +14,22 @@ add_library(dart_dll SHARED
1414
isolate_setup.cpp
1515
)
1616

17-
target_include_directories(dart_dll PUBLIC
17+
target_include_directories(dart_dll PRIVATE
1818
"${DART_DIR}/runtime"
1919
)
2020

2121
if(WIN32)
2222
set(LIB_PREFIX "lib")
2323
endif()
2424

25+
cmake_path(ABSOLUTE_PATH DART_DIR NORMALIZE OUTPUT_VARIABLE DART_DIR)
26+
2527
MESSAGE(STATUS "Dart SDK ${DART_DIR}")
2628

29+
if(NOT EXISTS "${DART_DIR}/runtime/include/dart_api.h")
30+
MESSAGE(FATAL_ERROR "Missing Dart SDK or not found")
31+
endif()
32+
2733
find_library(LIB_DART_DEBUG
2834
NAMES "${LIB_PREFIX}dart"
2935
HINTS "${DART_DIR}/out/DebugX64/obj/runtime/bin" "${DART_DIR}/xcodebuild/ReleaseX64/obj/runtime/bin"
@@ -41,10 +47,6 @@ target_compile_definitions(dart_dll PRIVATE
4147
)
4248

4349
if(WIN32)
44-
set_property(TARGET dart_dll PROPERTY
45-
MSVC_RUNTIME_LIBRARY "MultiThreaded"
46-
)
47-
4850
target_compile_definitions(dart_dll PRIVATE
4951
_HAS_EXCEPTIONS=0
5052
_SCL_SECURE=0
@@ -87,6 +89,8 @@ endif()
8789

8890
if(LIB_DART_DEBUG)
8991
target_link_libraries(dart_dll debug ${LIB_DART_DEBUG})
92+
else()
93+
target_link_libraries(dart_dll debug ${LIB_DART_RELEASE})
9094
endif()
9195

9296
target_link_libraries(dart_dll optimized ${LIB_DART_RELEASE})

0 commit comments

Comments
 (0)