|
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