c_cpp:cmake

Cmake - クロスプラットフォームのコンパイラに依存しない make 自動化システム

cmake logo
Cmake
CMake は、ソフトウェアの構築、テスト、および、パッケージングを行うために設計された、オープンソースのクロスプラットフォームのツールである。CMake は単純なプラットフォームとコンパイラに依存しない設定ファイルを使ってソフトウェアのコンパイルプロセスを制御し、ネイティブの makefile とワークスペースを生成するのに使われる。実際のビルドにおいては、make、Xcode、Visual Studio のようなネイティブのビルド環境が利用される。一連の CMake ツールは、Insight Segmentation and Registration Toolkit(ITK) や可視化ソフトウェアである Visualization Toolkit(VTK) などのオープンソースプロジェクト用の強力なクロスプラットフォーム構築環境の必要性に応えて Kitware 社によって開発された。

自分の開発環境は、OS が Fedora 29 でコンパイラは gcc バージョン 8.2.1、make は GNU Make 4.2.1 である。

Fedora

$ sudo dnf install cmake cmake-gui

メタデータの期限切れの最終確認: 0:08:48 時間前の 2023年10月10日 06時14分08秒 に実施しました。
依存関係が解決しました。
==============================================================================================================
 パッケージ                  アーキテクチャー    バージョン                        リポジトリー         サイズ
==============================================================================================================
インストール:
 cmake                       x86_64              3.27.6-1.fc38                     updates              8.0 M
 cmake-gui                   x86_64              3.27.6-1.fc38                     updates              2.7 M
依存関係のインストール:
 cmake-data                  noarch              3.27.6-1.fc38                     updates              2.2 M
 rhash                       x86_64              1.4.3-2.fc38                      fedora               194 k
 vim-filesystem              noarch              2:9.0.1984-1.fc38                 updates               18 k

トランザクションの概要
==============================================================================================================
インストール  5 パッケージ

ダウンロードサイズの合計: 13 M
インストール後のサイズ: 46 M
これでよろしいですか? [y/N]: y
パッケージのダウンロード:
(1/5): rhash-1.4.3-2.fc38.x86_64.rpm                                          397 kB/s | 194 kB     00:00    
(2/5): cmake-3.27.6-1.fc38.x86_64.rpm                                         2.5 MB/s | 8.0 MB     00:03    
(3/5): vim-filesystem-9.0.1984-1.fc38.noarch.rpm                              235 kB/s |  18 kB     00:00    
(4/5): cmake-data-3.27.6-1.fc38.noarch.rpm                                    635 kB/s | 2.2 MB     00:03    
(5/5): cmake-gui-3.27.6-1.fc38.x86_64.rpm                                     365 kB/s | 2.7 MB     00:07    
--------------------------------------------------------------------------------------------------------------
合計                                                                          1.4 MB/s |  13 MB     00:09     
トランザクションの確認を実行中
トランザクションの確認に成功しました。
トランザクションのテストを実行中
トランザクションのテストに成功しました。
トランザクションを実行中
  準備             :                                                                                      1/1 
  インストール中   : rhash-1.4.3-2.fc38.x86_64                                                            1/5 
  インストール中   : vim-filesystem-2:9.0.1984-1.fc38.noarch                                              2/5 
  インストール中   : cmake-data-3.27.6-1.fc38.noarch                                                      3/5 
  インストール中   : cmake-3.27.6-1.fc38.x86_64                                                           4/5 
  インストール中   : cmake-gui-3.27.6-1.fc38.x86_64                                                       5/5 
  scriptletの実行中: cmake-gui-3.27.6-1.fc38.x86_64                                                       5/5 
  検証             : rhash-1.4.3-2.fc38.x86_64                                                            1/5 
  検証             : cmake-3.27.6-1.fc38.x86_64                                                           2/5 
  検証             : cmake-data-3.27.6-1.fc38.noarch                                                      3/5 
  検証             : cmake-gui-3.27.6-1.fc38.x86_64                                                       4/5 
  検証             : vim-filesystem-2:9.0.1984-1.fc38.noarch                                              5/5 

インストール済み:
  cmake-3.27.6-1.fc38.x86_64    cmake-data-3.27.6-1.fc38.noarch            cmake-gui-3.27.6-1.fc38.x86_64   
  rhash-1.4.3-2.fc38.x86_64     vim-filesystem-2:9.0.1984-1.fc38.noarch   

完了しました!

※cmake-gui は Cmake のための QT GUI。

build ディレクトリを作成して、その中に Makefile を生成する。

$ cd project_dir
$ mkdir build && cd build
$ cmake ..

or

$ cmake -G "Unix Makefiles" -DCMAKE_BUILD_TYPE=Debug ..

build ディレクトリの中でビルドを開始する。

$ make

or

$ make -j4
CMakeLists.txt
# CMake のバージョンを設定
cmake_minimum_required(VERSION 3.12.1)
 
# デバッグおよびリリース構成タイプのみを生成
set(CMAKE_CONFIGURATION_TYPES Debug Release)
 
# プロジェクト名と使用する言語を設定
project(wxwebviewchromium CXX)
 
if (WIN32)
  set(exe_mode WIN32)
else ()
  set(exe_mode "")
endif ()
 
# 実行ファイルを設定
add_executable(simple ${exe_mode} simple.cpp simple.h)

Chromium Embedded Framework(CEF) コンフィギュレーション

#
# CEF コンフィギュレーション
#
 
# このプロジェクトの cmake/ ディレクトリをモジュールパスに追加
set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_CURRENT_SOURCE_DIR}/cmake")
 
# CEF 配布バージョンを指定
set(CEF_VERSION "3.3626.1886.g162fdec")
 
# プラットフォームを決定
if("${CMAKE_SYSTEM_NAME}" STREQUAL "Darwin")
    set(CEF_PLATFORM "macosx64")
elseif("${CMAKE_SYSTEM_NAME}" STREQUAL "Linux")
    if(CMAKE_SIZEOF_VOID_P MATCHES 8)
        set(CEF_PLATFORM "linux64")
    else()
        set(CEF_PLATFORM "linux32")
    endif()
elseif("${CMAKE_SYSTEM_NAME}" STREQUAL "Windows")
    if(CMAKE_SIZEOF_VOID_P MATCHES 8)
        set(CEF_PLATFORM "windows64")
    else()
        set(CEF_PLATFORM "windows32")
    endif()
endif()
 
# CEF バイナリ配布をダウンロードして解凍(DownloadCEF.cmake を実行)
include(DownloadCEF)
DownloadCEF("${CEF_PLATFORM}" "${CEF_VERSION}" "${CMAKE_SOURCE_DIR}/third_party/cef")
 
# CEF バイナリ配布の cmake/ ディレクトリをモジュールパスに追加
set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CEF_ROOT}/cmake")
 
# CEF 設定をロードします(FindCEF.cmake を実行)
find_package(CEF REQUIRED)
include_directories(${CEF_INCLUDE_DIR})
  • c_cpp/cmake.txt
  • 最終更新: 2023/10/10 07:03
  • by ともやん