Skip to content

Commit e11f700

Browse files
committed
fix
1 parent aff29ee commit e11f700

File tree

2 files changed

+21
-39
lines changed

2 files changed

+21
-39
lines changed

.github/workflows/build-windows.yml

Lines changed: 3 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -41,15 +41,9 @@ jobs:
4141
shell: pwsh
4242
run: |
4343
New-Item -ItemType Directory -Path lib/windows/x64 -Force | Out-Null
44-
Copy-Item build/bin/Release/webview.dll lib/windows/x64/
45-
if (Test-Path build/lib/Release/webview.lib) {
46-
Copy-Item build/lib/Release/webview.lib lib/windows/x64/
47-
} elseif (Test-Path build/bin/Release/webview.lib) {
48-
Copy-Item build/bin/Release/webview.lib lib/windows/x64/
49-
}
50-
if (Test-Path build/bin/Release/webview.pdb) {
51-
Copy-Item build/bin/Release/webview.pdb lib/windows/x64/
52-
}
44+
Copy-Item build/dist/webview.dll lib/windows/x64/
45+
if (Test-Path build/dist/webview.lib) { Copy-Item build/dist/webview.lib lib/windows/x64/ }
46+
if (Test-Path build/dist/webview.pdb) { Copy-Item build/dist/webview.pdb lib/windows/x64/ }
5347
5448
- name: Upload artifact
5549
uses: actions/upload-artifact@v4

c/windows/CMakeLists.txt

Lines changed: 18 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -1,51 +1,39 @@
11
cmake_minimum_required(VERSION 3.20)
22
project(cl-webview-win LANGUAGES C CXX)
33

4-
# x64 前提
54
if (NOT MSVC OR NOT CMAKE_SIZEOF_VOID_P EQUAL 8)
65
message(FATAL_ERROR "This build expects MSVC on 64-bit (x64) Windows.")
76
endif()
87

98
set(CMAKE_C_STANDARD 11)
109
set(CMAKE_CXX_STANDARD 17)
11-
set(CMAKE_WINDOWS_EXPORT_ALL_SYMBOLS ON)
1210

1311
include(FetchContent)
14-
# 上流 webview を取得(必要に応じてタグ固定)
12+
13+
# upstream を取得(必要ならタグは調整)
1514
FetchContent_Declare(
1615
webview
1716
GIT_REPOSITORY https://github.com/webview/webview
1817
GIT_TAG 0.12.0
1918
)
20-
FetchContent_MakeAvailable(webview)
21-
22-
# C API を DLL 化(CFFI からロードする想定)
23-
add_library(webview SHARED)
24-
25-
# 上流の C API 実装(パスは上流リポ構成に追従)
26-
target_sources(webview PRIVATE
27-
${webview_SOURCE_DIR}/webview/webview_capi.cpp
28-
)
2919

30-
# 上流のコアにリンク
31-
target_link_libraries(webview PRIVATE webview::core)
20+
# upstream のビルドを有効化(共有ライブラリを作る)
21+
set(WEBVIEW_BUILD ON CACHE BOOL "" FORCE)
22+
set(WEBVIEW_BUILD_SHARED_LIBRARY ON CACHE BOOL "" FORCE)
23+
set(WEBVIEW_BUILD_STATIC_LIBRARY OFF CACHE BOOL "" FORCE)
24+
# 公式 WebView2 Loader DLL に頼らない最小実装(既定で ON だが明示しておく)
25+
set(WEBVIEW_USE_BUILTIN_MSWEBVIEW2 ON CACHE BOOL "" FORCE)
3226

33-
# 必要に応じて DLL 名を固定したい場合は有効化
34-
# set_target_properties(webview PROPERTIES OUTPUT_NAME "libwebview")
27+
FetchContent_MakeAvailable(webview)
3528

36-
# 出力先
37-
set_target_properties(webview PROPERTIES
38-
RUNTIME_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/bin"
39-
ARCHIVE_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/lib"
40-
LIBRARY_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/bin"
29+
# 生成物を取り出しやすい場所へコピーするターゲット
30+
add_custom_target(stage ALL
31+
COMMAND ${CMAKE_COMMAND} -E make_directory ${CMAKE_BINARY_DIR}/dist
32+
COMMAND ${CMAKE_COMMAND} -E copy $<TARGET_FILE:webview::core_shared> ${CMAKE_BINARY_DIR}/dist/webview.dll
33+
COMMAND ${CMAKE_COMMAND} -E copy_if_different $<TARGET_LINKER_FILE:webview::core_shared> ${CMAKE_BINARY_DIR}/dist/webview.lib
34+
COMMAND ${CMAKE_COMMAND} -E copy_if_different $<TARGET_PDB_FILE:webview::core_shared> ${CMAKE_BINARY_DIR}/dist/webview.pdb
35+
DEPENDS webview::core_shared
4136
)
4237

43-
if (MSVC)
44-
target_compile_definitions(webview PRIVATE -DUNICODE -D_UNICODE)
45-
# 静的ランタイム (/MT) にしたい場合は以下を有効化
46-
# foreach(flag_var CMAKE_C_FLAGS_RELEASE CMAKE_CXX_FLAGS_RELEASE)
47-
# string(REPLACE "/MD" "/MT" ${flag_var} "${${flag_var}}")
48-
# endforeach()
49-
endif()
50-
51-
target_compile_definitions(webview PRIVATE WEBVIEW_LISP_BINDING=1)
38+
# 必要なら DLL 名を固定(BUILD.md に合わせて)
39+
# set_target_properties(webview::core_shared PROPERTIES OUTPUT_NAME "libwebview")

0 commit comments

Comments
 (0)