Skip to content

Commit c02a5dc

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

File tree

7 files changed

+45
-15
lines changed

7 files changed

+45
-15
lines changed

.github/workflows/build.yaml

+5-1
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,11 @@ jobs:
2828
working-directory: ./scripts/build_helpers
2929
- name: Build Dart
3030
run: dart ./scripts/build_helpers/bin/build_dart.dart -v
31-
- uses: threeal/cmake-action@v1.3.0
31+
- name: Cmake
32+
uses: threeal/cmake-action@v1.3.0
33+
with:
34+
options:
35+
"BUILD_SAMPLES=OFF"
3236
- name: Build Shared Library
3337
run: cmake --build build --config release
3438
- name: Assemble artifacts

.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

+7-2
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,8 @@ cmake_minimum_required(VERSION 3.21)
33
project(realtime_example)
44
set(CMAKE_CXX_STANDARD 17)
55

6+
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR})
7+
68
set(CUTE_FRAMEWORK_STATIC ON)
79
set(CF_FRAMEWORK_BUILD_TESTS OFF)
810
# Samples Build on Windows Falied
@@ -32,14 +34,17 @@ if(LINUX)
3234
set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -export-dynamic")
3335
endif()
3436

35-
add_custom_command(TARGET realtime_example POST_BUILD
37+
add_custom_target(ALWAYS_DO_POST_BUILD
3638
COMMAND ${CMAKE_COMMAND} -E copy -t $<TARGET_FILE_DIR:realtime_example> $<TARGET_RUNTIME_DLLS:simple_example_ffi>
3739
COMMAND ${CMAKE_COMMAND} -E copy_directory ${PROJECT_SOURCE_DIR}/dart $<TARGET_FILE_DIR:realtime_example>/dart
3840
COMMAND_EXPAND_LISTS
3941
)
42+
add_dependencies(realtime_example ALWAYS_DO_POST_BUILD)
4043

4144
target_link_libraries(realtime_example PUBLIC dart_dll cute)
4245

4346
if (MSVC)
4447
set_property(TARGET realtime_example PROPERTY VS_DEBUGGER_WORKING_DIRECTORY $<TARGET_FILE_DIR:realtime_example>)
45-
endif()
48+
endif()
49+
50+
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)