|
1 | 1 | cmake_minimum_required(VERSION 3.20)
|
2 | 2 | project(cl-webview-win LANGUAGES C CXX)
|
3 | 3 |
|
4 |
| -# MSVC x64 前提 |
5 | 4 | if (NOT MSVC OR NOT CMAKE_SIZEOF_VOID_P EQUAL 8)
|
6 | 5 | message(FATAL_ERROR "This build expects MSVC on 64-bit (x64) Windows.")
|
7 | 6 | endif()
|
8 | 7 |
|
9 | 8 | set(CMAKE_C_STANDARD 11)
|
10 | 9 | set(CMAKE_CXX_STANDARD 17)
|
11 | 10 |
|
| 11 | +# ← 追加:/MT 静的ランタイム指定(VS 2019+ の正攻法) |
| 12 | +# 上流にも効かせるため、FetchContent する前に設定します |
| 13 | +if (MSVC) |
| 14 | + cmake_policy(SET CMP0091 NEW) |
| 15 | + set(CMAKE_MSVC_RUNTIME_LIBRARY "MultiThreaded$<$<CONFIG:Debug>:Debug>") |
| 16 | +endif() |
| 17 | + |
12 | 18 | include(FetchContent)
|
13 | 19 |
|
14 |
| -# 上流 webview を取得(必要に応じてタグは調整) |
15 | 20 | FetchContent_Declare(
|
16 | 21 | webview
|
17 | 22 | GIT_REPOSITORY https://github.com/webview/webview
|
18 | 23 | GIT_TAG 0.12.0
|
19 | 24 | )
|
20 | 25 |
|
21 |
| -# 共有ライブラリの生成を有効化 |
22 | 26 | set(WEBVIEW_BUILD ON CACHE BOOL "" FORCE)
|
23 | 27 | set(WEBVIEW_BUILD_SHARED_LIBRARY ON CACHE BOOL "" FORCE)
|
24 | 28 | set(WEBVIEW_BUILD_STATIC_LIBRARY OFF CACHE BOOL "" FORCE)
|
25 |
| -# 公式 WebView2 Loader DLL に頼らない最小実装(既定ONだが明示) |
26 | 29 | set(WEBVIEW_USE_BUILTIN_MSWEBVIEW2 ON CACHE BOOL "" FORCE)
|
27 | 30 |
|
28 | 31 | FetchContent_MakeAvailable(webview)
|
29 | 32 |
|
30 |
| -# dist ディレクトリに生成物をまと�める(DLL/IMPLIB は必須、PDB は存在時のみ) |
31 | 33 | add_custom_target(stage ALL
|
32 | 34 | COMMAND ${CMAKE_COMMAND} -E make_directory ${CMAKE_BINARY_DIR}/dist
|
33 |
| - # DLL |
34 |
| - COMMAND ${CMAKE_COMMAND} -E copy |
35 |
| - $<TARGET_FILE:webview::core_shared> |
36 |
| - ${CMAKE_BINARY_DIR}/dist/webview.dll |
37 |
| - # インポートライブラリ(.lib) |
38 |
| - COMMAND ${CMAKE_COMMAND} -E copy_if_different |
39 |
| - $<TARGET_LINKER_FILE:webview::core_shared> |
40 |
| - ${CMAKE_BINARY_DIR}/dist/webview.lib |
41 |
| - # PDB(存在すれば) |
42 |
| - COMMAND ${CMAKE_COMMAND} |
43 |
| - -DSRC=$<TARGET_PDB_FILE:webview::core_shared> |
44 |
| - -DDST=${CMAKE_BINARY_DIR}/dist/webview.pdb |
45 |
| - -P ${CMAKE_CURRENT_LIST_DIR}/CopyIfExists.cmake |
| 35 | + COMMAND ${CMAKE_COMMAND} -E copy $<TARGET_FILE:webview::core_shared> ${CMAKE_BINARY_DIR}/dist/webview.dll |
| 36 | + COMMAND ${CMAKE_COMMAND} -E copy_if_different $<TARGET_LINKER_FILE:webview::core_shared> ${CMAKE_BINARY_DIR}/dist/webview.lib |
| 37 | + COMMAND ${CMAKE_COMMAND} -DSRC=$<TARGET_PDB_FILE:webview::core_shared> -DDST=${CMAKE_BINARY_DIR}/dist/webview.pdb -P ${CMAKE_CURRENT_LIST_DIR}/CopyIfExists.cmake |
46 | 38 | DEPENDS webview::core_shared
|
47 | 39 | )
|
48 |
| - |
49 |
| -# BUILD.md の期待に合わせて DLL 名を固定したい場合は有効化 |
50 |
| -# set_target_properties(webview::core_shared PROPERTIES OUTPUT_NAME "libwebview") |
0 commit comments