generated from koriym/ext-helloworld
-
Notifications
You must be signed in to change notification settings - Fork 0
/
CMakeLists.txt
57 lines (45 loc) · 2.51 KB
/
CMakeLists.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
# 必要なCMakeのバージョンを指定
# link https://cmake.org/cmake/help/latest/command/cmake_minimum_required.html
cmake_minimum_required(VERSION 3.8)
# プロジェクトの名前と使用する言語を指定
# link https://cmake.org/cmake/help/latest/command/project.html
project(rayaop C)
# コンパイル時に定義するシンボルを指定
# link https://cmake.org/cmake/help/latest/command/add_compile_definitions.html
add_compile_definitions(HAVE_RAYAOP)
# `php-config` コマンドを使ってPHPのインクルードディレクトリを取得
# link https://cmake.org/cmake/help/latest/command/execute_process.html
execute_process (
COMMAND php-config --include-dir
OUTPUT_VARIABLE PHP_SOURCE
)
# 取得したディレクトリの末尾にある改行を削除
# link https://cmake.org/cmake/help/latest/command/string.html
string(REGEX REPLACE "\n$" "" PHP_SOURCE "${PHP_SOURCE}")
# 使用するソースディレクトリをメッセージとして表示
# link https://cmake.org/cmake/help/latest/command/message.html
message("Using source directory: ${PHP_SOURCE}")
# インクルードディレクトリを追加
# link https://cmake.org/cmake/help/latest/command/include_directories.html
include_directories(${PHP_SOURCE})
include_directories(${PHP_SOURCE}/main)
include_directories(${PHP_SOURCE}/Zend)
include_directories(${PHP_SOURCE}/TSRM)
include_directories(${PROJECT_SOURCE_DIR})
# カスタムターゲット `configure` を追加
# `phpize` と `./configure` を実行し、ソースファイルに依存させる
# link https://cmake.org/cmake/help/latest/command/add_custom_target.html
add_custom_target(configure
COMMAND phpize && ./configure
DEPENDS ${SOURCE_FILES}
WORKING_DIRECTORY ${PROJECT_SOURCE_DIR})
# ソースファイルのリストを指定
# link https://cmake.org/cmake/help/latest/command/set.html
set(SOURCE_FILES php_rayaop.h rayaop.c)
# ソースファイルからライブラリを作成(ただし、ALLビルドからは除外)
# link https://cmake.org/cmake/help/latest/command/add_library.html
add_library(___ EXCLUDE_FROM_ALL ${SOURCE_FILES})
# CMakeの CMP0115 ポリシーの振る舞いを設定。新しいポリシーでは、ソースファイルが存在しない場合でも
# add_executable() または add_library() を実行しますが、生成されたビルドがそのファイルを見つけられない場合にはエラーを生成します。
# link https://cmake.org/cmake/help/latest/policy/CMP0115.html
cmake_policy(SET CMP0115 NEW)