Skip to content

Commit a63c4cd

Browse files
committed
upd: vcpkg for macOS
1 parent 79c9d42 commit a63c4cd

1,121 files changed

Lines changed: 318 additions & 215721 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

Projects/MapViewer/CMakeLists.txt

Lines changed: 48 additions & 58 deletions
Original file line numberDiff line numberDiff line change
@@ -37,20 +37,11 @@ if(NOT SFML_FOUND)
3737
# First try to find SFML via vcpkg (standard CMake config)
3838
find_package(SFML 3 QUIET COMPONENTS Graphics Window System)
3939

40-
# If not found via vcpkg, try project-local SFML
40+
# If not found via vcpkg, try custom finder (includes project-local SFML for Windows and legacy macOS)
4141
if(NOT SFML_FOUND)
42-
# Set SFML_ROOT_DIR for project-local SFML installation
43-
if(NOT SFML_ROOT_DIR)
44-
set(SFML_LOCAL_PATH "${CMAKE_CURRENT_SOURCE_DIR}/${OS}/SFML_3.0.0")
45-
if(EXISTS "${SFML_LOCAL_PATH}")
46-
set(SFML_ROOT_DIR "${SFML_LOCAL_PATH}")
47-
message(STATUS "Using project-local SFML: ${SFML_ROOT_DIR}")
48-
endif()
49-
endif()
50-
5142
find_package(SFMLCustom QUIET)
5243
else()
53-
message(STATUS "Found SFML ${SFML_VERSION} via CMake config")
44+
message(STATUS "Found SFML ${SFML_VERSION} via CMake config (vcpkg or system)")
5445
endif()
5546
endif()
5647

@@ -65,8 +56,10 @@ if(WIN32)
6556
add_executable(${BINARY_NAME} ${CPP_FILE})
6657
paxs_setup_sfml(${BINARY_NAME})
6758
paxs_copy_config_tsv(${BINARY_NAME} ${TSV_SOURCE_PATH})
68-
elseif(APPLE)
69-
set(CPP_FILE "${CMAKE_CURRENT_SOURCE_DIR}/${OS}/SFML_3.0.0/Main.cpp")
59+
elseif(APPLE AND SFML_FOUND)
60+
if(EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/${OS}/SFML/Main.cpp")
61+
set(CPP_FILE "${CMAKE_CURRENT_SOURCE_DIR}/${OS}/SFML/Main.cpp")
62+
endif()
7063

7164
if(PAXS_BUILD_TYPE STREQUAL "Production")
7265
# Production: macOS .app bundle
@@ -88,51 +81,48 @@ elseif(APPLE)
8881

8982
target_link_libraries(${BINARY_NAME} PRIVATE SFML::Graphics curl)
9083

91-
# Copy SFML frameworks to the bundle
92-
if(SFML_FOUND)
93-
# Get SFML library paths
94-
get_target_property(SFML_GRAPHICS_LIB SFML::Graphics IMPORTED_LOCATION_RELEASE)
95-
if(NOT SFML_GRAPHICS_LIB)
96-
get_target_property(SFML_GRAPHICS_LIB SFML::Graphics IMPORTED_LOCATION)
97-
endif()
98-
99-
if(SFML_GRAPHICS_LIB)
100-
get_filename_component(SFML_LIB_DIR ${SFML_GRAPHICS_LIB} DIRECTORY)
101-
set(APP_FRAMEWORKS_DIR "$<TARGET_BUNDLE_CONTENT_DIR:${BINARY_NAME}>/Frameworks")
102-
103-
add_custom_command(
104-
TARGET ${BINARY_NAME} POST_BUILD
105-
# MacOS/にProdConfig.tsvをコピー
106-
COMMAND ${CMAKE_COMMAND} -E copy_if_different
107-
"${CMAKE_CURRENT_SOURCE_DIR}/${OS}/ProdConfig.tsv"
108-
"$<TARGET_FILE_DIR:${BINARY_NAME}>/Config.tsv"
109-
110-
# Resources/にappicon.icnsをコピー
111-
COMMAND ${CMAKE_COMMAND} -E make_directory
112-
"$<TARGET_BUNDLE_CONTENT_DIR:${BINARY_NAME}>/Resources"
113-
COMMAND ${CMAKE_COMMAND} -E copy_if_different
114-
"${CMAKE_CURRENT_SOURCE_DIR}/${OS}/appicon.icns"
115-
"$<TARGET_BUNDLE_CONTENT_DIR:${BINARY_NAME}>/Resources/appicon.icns"
116-
117-
# SFML の dylib をコピーして install_name_tool でパスを修正
118-
COMMAND ${CMAKE_COMMAND} -E make_directory
119-
${APP_FRAMEWORKS_DIR}
120-
COMMAND ${CMAKE_COMMAND} -E copy_if_different
121-
${SFML_LIB_DIR}/libsfml-graphics.3.0.dylib
122-
${APP_FRAMEWORKS_DIR}/
123-
COMMAND ${CMAKE_COMMAND} -E copy_if_different
124-
${SFML_LIB_DIR}/libsfml-window.3.0.dylib
125-
${APP_FRAMEWORKS_DIR}/
126-
COMMAND ${CMAKE_COMMAND} -E copy_if_different
127-
${SFML_LIB_DIR}/libsfml-system.3.0.dylib
128-
${APP_FRAMEWORKS_DIR}/
129-
130-
COMMAND install_name_tool -change ${SFML_LIB_DIR}/libsfml-graphics.3.0.dylib @rpath/libsfml-graphics.3.0.dylib $<TARGET_FILE:${BINARY_NAME}>
131-
COMMAND install_name_tool -change ${SFML_LIB_DIR}/libsfml-window.3.0.dylib @rpath/libsfml-window.3.0.dylib $<TARGET_FILE:${BINARY_NAME}>
132-
COMMAND install_name_tool -change ${SFML_LIB_DIR}/libsfml-system.3.0.dylib @rpath/libsfml-system.3.0.dylib $<TARGET_FILE:${BINARY_NAME}>
133-
COMMENT "Copying SFML dylibs to app bundle and fixing install names..."
134-
)
135-
endif()
84+
# Get SFML library paths
85+
get_target_property(SFML_GRAPHICS_LIB SFML::Graphics IMPORTED_LOCATION_RELEASE)
86+
if(NOT SFML_GRAPHICS_LIB)
87+
get_target_property(SFML_GRAPHICS_LIB SFML::Graphics IMPORTED_LOCATION)
88+
endif()
89+
90+
if(SFML_GRAPHICS_LIB)
91+
get_filename_component(SFML_LIB_DIR ${SFML_GRAPHICS_LIB} DIRECTORY)
92+
set(APP_FRAMEWORKS_DIR "$<TARGET_BUNDLE_CONTENT_DIR:${BINARY_NAME}>/Frameworks")
93+
94+
add_custom_command(
95+
TARGET ${BINARY_NAME} POST_BUILD
96+
# MacOS/にProdConfig.tsvをコピー
97+
COMMAND ${CMAKE_COMMAND} -E copy_if_different
98+
"${CMAKE_CURRENT_SOURCE_DIR}/${OS}/ProdConfig.tsv"
99+
"$<TARGET_FILE_DIR:${BINARY_NAME}>/Config.tsv"
100+
101+
# Resources/にappicon.icnsをコピー
102+
COMMAND ${CMAKE_COMMAND} -E make_directory
103+
"$<TARGET_BUNDLE_CONTENT_DIR:${BINARY_NAME}>/Resources"
104+
COMMAND ${CMAKE_COMMAND} -E copy_if_different
105+
"${CMAKE_CURRENT_SOURCE_DIR}/${OS}/appicon.icns"
106+
"$<TARGET_BUNDLE_CONTENT_DIR:${BINARY_NAME}>/Resources/appicon.icns"
107+
108+
# SFML の dylib をコピーして install_name_tool でパスを修正
109+
COMMAND ${CMAKE_COMMAND} -E make_directory
110+
${APP_FRAMEWORKS_DIR}
111+
COMMAND ${CMAKE_COMMAND} -E copy_if_different
112+
${SFML_LIB_DIR}/libsfml-graphics.3.0.dylib
113+
${APP_FRAMEWORKS_DIR}/
114+
COMMAND ${CMAKE_COMMAND} -E copy_if_different
115+
${SFML_LIB_DIR}/libsfml-window.3.0.dylib
116+
${APP_FRAMEWORKS_DIR}/
117+
COMMAND ${CMAKE_COMMAND} -E copy_if_different
118+
${SFML_LIB_DIR}/libsfml-system.3.0.dylib
119+
${APP_FRAMEWORKS_DIR}/
120+
121+
COMMAND install_name_tool -change ${SFML_LIB_DIR}/libsfml-graphics.3.0.dylib @rpath/libsfml-graphics.3.0.dylib $<TARGET_FILE:${BINARY_NAME}>
122+
COMMAND install_name_tool -change ${SFML_LIB_DIR}/libsfml-window.3.0.dylib @rpath/libsfml-window.3.0.dylib $<TARGET_FILE:${BINARY_NAME}>
123+
COMMAND install_name_tool -change ${SFML_LIB_DIR}/libsfml-system.3.0.dylib @rpath/libsfml-system.3.0.dylib $<TARGET_FILE:${BINARY_NAME}>
124+
COMMENT "Copying SFML dylibs to app bundle and fixing install names..."
125+
)
136126
endif()
137127
else()
138128
# Development: standard executable

Projects/MapViewer/Linux/SFML/README.md

Lines changed: 17 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
1-
# SFML 3.0.0 MapViewer for Linux (Ubuntu)
1+
# SFML MapViewer for Linux (Ubuntu)
22

33
## 概要 (Overview)
44

5-
このディレクトリには、Linux(Ubuntu)環境でSFML 3.0.0を使用してMapViewerをビルドするためのファイルが含まれています
5+
このディレクトリには、Linux(Ubuntu)環境でSFMLを使用してMapViewerをビルドするためのファイルが含まれています
66

7-
This directory contains files for building MapViewer with SFML 3.0.0 on Linux (Ubuntu).
7+
This directory contains files for building MapViewer with SFML on Linux (Ubuntu).
88

99
## 必要な環境 (Requirements)
1010

@@ -29,33 +29,37 @@ cd /path/to/PAX_SAPIENTICA
2929
このスクリプトは以下を自動的に実行します:
3030
- 必要なシステムパッケージのインストール
3131
- vcpkgのクローンとブートストラップ
32-
- SFML 3.0.0のインストール
32+
- SFMLのインストール
3333

3434
This script will automatically:
3535
- Install required system packages
3636
- Clone and bootstrap vcpkg
37-
- Install SFML 3.0.0
37+
- Install SFML
3838

3939
### ステップ2: プロジェクトのビルド (Step 2: Build the project)
4040

4141
```bash
42-
mkdir -p Projects/build
43-
cd Projects/build
44-
cmake .. -DCMAKE_TOOLCHAIN_FILE=../../vcpkg/scripts/buildsystems/vcpkg.cmake
45-
cmake --build .
42+
cd /path/to/PAX_SAPIENTICA
43+
cmake -B build -S Projects -DCMAKE_TOOLCHAIN_FILE=vcpkg/scripts/buildsystems/vcpkg.cmake -DSFML_STATIC_LIBRARIES=TRUE -DVCPKG_INSTALLED_DIR=vcpkg_installed
44+
cmake --build build
4645
```
4746

47+
**重要なオプション (Important options)**:
48+
- `-DSFML_STATIC_LIBRARIES=TRUE`: vcpkg版SFMLのスタティックライブラリを使用(必須 / required)
49+
- `-DVCPKG_INSTALLED_DIR=vcpkg_installed`: vcpkgのインストール先をプロジェクトルートに指定(推奨 / recommended)
50+
- `-B build -S Projects`: ビルドディレクトリをプロジェクトルートに作成(Build directory at project root)
51+
4852
### ステップ3: 実行 (Step 3: Run)
4953

5054
```bash
51-
./MapViewer/SFMLMapViewer
55+
./build/MapViewer/SFMLMapViewer
5256
```
5357

5458
## vcpkgを使用しない場合 (Without vcpkg)
5559

56-
vcpkgを使用せずにSFML 3.0.0をソースからビルドする場合
60+
vcpkgを使用せずにSFMLをソースからビルドする場合
5761

58-
If you want to build SFML 3.0.0 from source without vcpkg:
62+
If you want to build SFML from source without vcpkg:
5963

6064
### 依存関係のインストール (Install dependencies)
6165

@@ -77,7 +81,7 @@ sudo apt install -y \
7781
libgbm-dev
7882
```
7983

80-
### SFML 3.0.0のビルドとインストール (Build and install SFML 3.0.0)
84+
### SFML のビルドとインストール (Build and install SFML)
8185

8286
```bash
8387
# SFML 3.0.0をクローン

Projects/MapViewer/macOS/SFML_3.0.0/Main.cpp renamed to Projects/MapViewer/macOS/SFML/Main.cpp

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,8 +12,6 @@
1212
#define _CRT_SECURE_NO_WARNINGS
1313
#define PAXS_USING_SFML
1414

15-
// STB implementation must be defined in exactly one cpp file per executable
16-
#define STB_IMAGE_WRITE_IMPLEMENTATION
1715
#include <stb/stb_image_write.h>
1816

1917
#include <SFML/Graphics.hpp>
Lines changed: 137 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,137 @@
1+
# SFML MapViewer for macOS
2+
3+
## 概要 (Overview)
4+
5+
このディレクトリには、macOS環境でSFMLを使用してMapViewerをビルドするためのファイルが含まれています。
6+
7+
This directory contains files for building MapViewer with SFML on macOS.
8+
9+
## 必要な環境 (Requirements)
10+
11+
- macOS 11.0 (Big Sur) 以降 (macOS 11.0 or later)
12+
- Homebrew
13+
- CMake 3.16 以降 (CMake 3.16 or later)
14+
- C++20 対応コンパイラ (C++20 compatible compiler)
15+
- Git
16+
17+
## インストール手順 (Installation)
18+
19+
### ステップ1: vcpkgのセットアップ (Step 1: Setup vcpkg)
20+
21+
プロジェクトルートディレクトリから、vcpkgセットアップスクリプトを実行します:
22+
23+
From the project root directory, run the vcpkg setup script:
24+
25+
```bash
26+
cd /path/to/PAX_SAPIENTICA
27+
./Scripts/SetupVcpkgMac.sh
28+
```
29+
30+
このスクリプトは以下を自動的に実行します:
31+
- Homebrewを使用した必要なシステムパッケージのインストール
32+
- vcpkgのクローンとブートストラップ
33+
- SFMLのインストール
34+
35+
This script will automatically:
36+
- Install required system packages using Homebrew
37+
- Clone and bootstrap vcpkg
38+
- Install SFML
39+
40+
### ステップ2: プロジェクトのビルド (Step 2: Build the project)
41+
42+
```bash
43+
cd /path/to/PAX_SAPIENTICA
44+
cmake -B build -S Projects -DCMAKE_TOOLCHAIN_FILE=vcpkg/scripts/buildsystems/vcpkg.cmake -DSFML_STATIC_LIBRARIES=TRUE -DVCPKG_INSTALLED_DIR=vcpkg_installed
45+
cmake --build build
46+
```
47+
48+
**重要なオプション (Important options)**:
49+
- `-DSFML_STATIC_LIBRARIES=TRUE`: vcpkg版SFMLのスタティックライブラリを使用(必須 / required)
50+
51+
### ステップ3: 実行 (Step 3: Run)
52+
53+
```bash
54+
./build/MapViewer/SFMLMapViewer
55+
```
56+
57+
## vcpkgを使用しない場合 (Without vcpkg)
58+
59+
vcpkgを使用せずにSFMLをソースからビルドする場合:
60+
61+
If you want to build SFML from source without vcpkg:
62+
63+
### 依存関係のインストール (Install dependencies)
64+
65+
```bash
66+
brew install cmake ninja pkg-config
67+
```
68+
69+
### SFMLのビルドとインストール (Build and install SFML)
70+
71+
```bash
72+
# SFML 3.0.0をクローン
73+
git clone https://github.com/SFML/SFML.git
74+
cd SFML
75+
git checkout 3.0.0
76+
77+
# ビルド
78+
mkdir build && cd build
79+
cmake .. -DCMAKE_BUILD_TYPE=Release
80+
cmake --build .
81+
82+
# インストール
83+
sudo cmake --install .
84+
```
85+
86+
### プロジェクトのビルド (Build the project)
87+
88+
```bash
89+
cd /path/to/PAX_SAPIENTICA/Projects
90+
mkdir -p build && cd build
91+
cmake ..
92+
cmake --build .
93+
```
94+
95+
## Apple Siliconについて (About Apple Silicon)
96+
97+
Apple Siliconを使用している場合、vcpkgは自動的に `arm64-osx` トリプレットを使用します。Intel Macの場合は `x64-osx` が使用されます。
98+
99+
When using Apple Silicon, vcpkg will automatically use the `arm64-osx` triplet. For Intel Macs, `x64-osx` will be used.
100+
101+
## トラブルシューティング (Troubleshooting)
102+
103+
### SFML が見つからない (SFML not found)
104+
105+
CMake実行時に以下のようなメッセージが表示される場合:
106+
107+
```
108+
SFML not found - MapViewer will not be built
109+
```
110+
111+
解決方法:
112+
1. vcpkgのセットアップスクリプトが正常に完了したか確認
113+
2. CMake実行時に `-DCMAKE_TOOLCHAIN_FILE` オプションを指定しているか確認
114+
3. vcpkgディレクトリが正しい場所に存在するか確認
115+
116+
### Homebrewがインストールされていない (Homebrew not installed)
117+
118+
Homebrewがインストールされていない場合、以下のコマンドでインストールしてください:
119+
120+
```bash
121+
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
122+
```
123+
124+
### ビルドエラー (Build errors)
125+
126+
Xcodeコマンドラインツールが不足している場合、以下を実行:
127+
128+
```bash
129+
xcode-select --install
130+
```
131+
132+
## 参考リンク (References)
133+
134+
- [SFML 3.0 公式ドキュメント](https://www.sfml-dev.org/tutorials/3.0/)
135+
- [vcpkg 公式サイト](https://vcpkg.io/)
136+
- [Homebrew 公式サイト](https://brew.sh)
137+
- [PAX_SAPIENTICA メインREADME](../../../../README.md)

Projects/MapViewer/macOS/SFML_3.0.0/Frameworks/sfml-audio.framework/Resources

Lines changed: 0 additions & 1 deletion
This file was deleted.

Projects/MapViewer/macOS/SFML_3.0.0/Frameworks/sfml-audio.framework/Versions/3.0.0/Resources/Info.plist

Lines changed: 0 additions & 28 deletions
This file was deleted.
Binary file not shown.

Projects/MapViewer/macOS/SFML_3.0.0/Frameworks/sfml-audio.framework/Versions/Current

Lines changed: 0 additions & 1 deletion
This file was deleted.

Projects/MapViewer/macOS/SFML_3.0.0/Frameworks/sfml-audio.framework/sfml-audio

Lines changed: 0 additions & 1 deletion
This file was deleted.

Projects/MapViewer/macOS/SFML_3.0.0/Frameworks/sfml-graphics.framework/Resources

Lines changed: 0 additions & 1 deletion
This file was deleted.

0 commit comments

Comments
 (0)