Skip to content

Commit a3ffddd

Browse files
committed
Fix builds on macOS
1 parent b24bdd9 commit a3ffddd

File tree

4 files changed

+39
-17
lines changed

4 files changed

+39
-17
lines changed

Diff for: examples/realtime_example/CMakeLists.txt

+7-3
Original file line numberDiff line numberDiff line change
@@ -33,8 +33,14 @@ if(LINUX)
3333
set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -export-dynamic")
3434
endif()
3535

36+
if (WIN32)
37+
add_custom_command(TARGET realtime_example POST_BUILD
38+
COMMAND ${CMAKE_COMMAND} -E copy $<TARGET_RUNTIME_DLLS:realtime_example> $<TARGET_FILE_DIR:realtime_example>
39+
COMMAND_EXPAND_LISTS
40+
)
41+
endif()
42+
3643
add_custom_command(TARGET realtime_example POST_BUILD
37-
COMMAND ${CMAKE_COMMAND} -E copy -t $<TARGET_FILE_DIR:realtime_example> $<TARGET_RUNTIME_DLLS:realtime_example>
3844
COMMAND ${CMAKE_COMMAND} -E copy_directory ${PROJECT_SOURCE_DIR}/dart/ $<TARGET_FILE_DIR:realtime_example>/dart
3945
COMMAND_EXPAND_LISTS
4046
)
@@ -44,5 +50,3 @@ target_link_libraries(realtime_example PUBLIC dart_dll cute)
4450
if (MSVC)
4551
set_property(TARGET realtime_example PROPERTY VS_DEBUGGER_WORKING_DIRECTORY $<TARGET_FILE_DIR:realtime_example>)
4652
endif()
47-
48-
set(EXECUTABLE_OUTPUT_PATH "${EXECUTABLE_OUTPUT_PATH}/realtime_example")

Diff for: examples/simple_example/CMakeLists.txt

+9-5
Original file line numberDiff line numberDiff line change
@@ -9,16 +9,20 @@ target_include_directories(simple_example PRIVATE
99
"${DART_DIR}/runtime/include"
1010
)
1111

12+
if(WIN32)
13+
add_custom_command(TARGET simple_example POST_BUILD
14+
COMMAND ${CMAKE_COMMAND} -E copy $<TARGET_RUNTIME_DLLS:simple_example> $<TARGET_FILE_DIR:simple_example>
15+
COMMAND_EXPAND_LISTS
16+
)
17+
endif()
18+
1219
add_custom_command(TARGET simple_example POST_BUILD
13-
COMMAND ${CMAKE_COMMAND} -E copy -t $<TARGET_FILE_DIR:simple_example> $<TARGET_RUNTIME_DLLS:simple_example>
14-
COMMAND ${CMAKE_COMMAND} -E copy -t $<TARGET_FILE_DIR:simple_example> ${PROJECT_SOURCE_DIR}/hello_world.dart
20+
COMMAND ${CMAKE_COMMAND} -E copy ${PROJECT_SOURCE_DIR}/hello_world.dart $<TARGET_FILE_DIR:simple_example>
1521
COMMAND_EXPAND_LISTS
1622
)
1723

1824
target_link_libraries(simple_example PUBLIC dart_dll)
1925

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

Diff for: examples/simple_example_ffi/CMakeLists.txt

+8-4
Original file line numberDiff line numberDiff line change
@@ -9,9 +9,15 @@ target_include_directories(simple_example_ffi PRIVATE
99
"${DART_DIR}/runtime/include"
1010
)
1111

12+
if(WIN32)
13+
add_custom_command(TARGET simple_example_ffi POST_BUILD
14+
COMMAND ${CMAKE_COMMAND} -E copy $<TARGET_RUNTIME_DLLS:simple_example_ffi> $<TARGET_FILE_DIR:simple_example_ffi>
15+
COMMAND_EXPAND_LISTS
16+
)
17+
endif()
18+
1219
add_custom_command(TARGET simple_example_ffi POST_BUILD
13-
COMMAND ${CMAKE_COMMAND} -E copy -t $<TARGET_FILE_DIR:simple_example_ffi> $<TARGET_RUNTIME_DLLS:simple_example_ffi>
14-
COMMAND ${CMAKE_COMMAND} -E copy -t $<TARGET_FILE_DIR:simple_example_ffi> ${PROJECT_SOURCE_DIR}/hello_world_ffi.dart
20+
COMMAND ${CMAKE_COMMAND} -E copy ${PROJECT_SOURCE_DIR}/hello_world_ffi.dart $<TARGET_FILE_DIR:simple_example_ffi>
1521
COMMAND ${CMAKE_COMMAND} -E copy_directory ${PROJECT_SOURCE_DIR}/.dart_tool $<TARGET_FILE_DIR:simple_example_ffi>/.dart_tool
1622
COMMAND_EXPAND_LISTS
1723
)
@@ -21,5 +27,3 @@ target_link_libraries(simple_example_ffi PUBLIC dart_dll)
2127
if (MSVC)
2228
set_property(TARGET simple_example_ffi PROPERTY VS_DEBUGGER_WORKING_DIRECTORY $<TARGET_FILE_DIR:simple_example_ffi>)
2329
endif()
24-
25-
set(EXECUTABLE_OUTPUT_PATH "${EXECUTABLE_OUTPUT_PATH}/simple_example_ffi")

Diff for: src/CMakeLists.txt

+15-5
Original file line numberDiff line numberDiff line change
@@ -32,12 +32,16 @@ endif()
3232

3333
find_library(LIB_DART_DEBUG
3434
NAMES "${LIB_PREFIX}dart"
35-
HINTS "${DART_DIR}/out/DebugX64/obj/runtime/bin" "${DART_DIR}/xcodebuild/ReleaseX64/obj/runtime/bin"
35+
HINTS "${DART_DIR}/out/DebugX64/obj/runtime/bin"
36+
"${DART_DIR}/xcodebuild/DebugX64/obj/runtime/bin"
37+
"${DART_DIR}/xcodebuild/DebugARM64/obj/runtime/bin"
3638
)
3739

3840
find_library(LIB_DART_RELEASE
3941
NAMES "${LIB_PREFIX}dart"
40-
HINTS "${DART_DIR}/out/ReleaseX64/obj/runtime/bin" "${DART_DIR}/xcodebuild/ReleaseX64/obj/runtime/bin"
42+
HINTS "${DART_DIR}/out/ReleaseX64/obj/runtime/bin"
43+
"${DART_DIR}/xcodebuild/ReleaseX64/obj/runtime/bin"
44+
"${DART_DIR}/xcodebuild/ReleaseARM64/obj/runtime/bin"
4145
)
4246

4347
target_compile_definitions(dart_dll PRIVATE
@@ -84,9 +88,15 @@ elseif(LINUX)
8488
${CMAKE_DL_LIBS}
8589
)
8690
elseif(APPLE)
87-
set(CMAKE_C_COMPILER "${DART_DIR}/buildtools/mac-x64/clang/bin/clang")
88-
set(CMAKE_CXX_COMPILER "${DART_DIR}/buildtools/mac-x64/clang/bin/clang++")
89-
set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} -nostdlib++ ${DART_DIR}/buildtools/mac-x64/clang/lib/libc++.a -framework Cocoa -framework QuartzCore -framework Security")
91+
if(CMAKE_APPLE_SILICON_PROCESSOR STREQUAL "arm64")
92+
set(CMAKE_C_COMPILER "${DART_DIR}/buildtools/mac-arm64/clang/bin/clang")
93+
set(CMAKE_CXX_COMPILER "${DART_DIR}/buildtools/mac-arm64/clang/bin/clang++")
94+
set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} -nostdlib++ ${DART_DIR}/buildtools/mac-arm64/clang/lib/libc++.a -framework Cocoa -framework QuartzCore -framework Security")
95+
else()
96+
set(CMAKE_C_COMPILER "${DART_DIR}/buildtools/mac-x64/clang/bin/clang")
97+
set(CMAKE_CXX_COMPILER "${DART_DIR}/buildtools/mac-x64/clang/bin/clang++")
98+
set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} -nostdlib++ ${DART_DIR}/buildtools/mac-x64/clang/lib/libc++.a -framework Cocoa -framework QuartzCore -framework Security")
99+
endif()
90100
endif()
91101

92102
if(LIB_DART_DEBUG)

0 commit comments

Comments
 (0)