c_cpp:cmake

差分

このページの2つのバージョン間の差分を表示します。

この比較画面へのリンク

両方とも前のリビジョン 前のリビジョン
次のリビジョン
前のリビジョン
次のリビジョン両方とも次のリビジョン
c_cpp:cmake [2019/02/18 05:16] – [インストール] ともやんc_cpp:cmake [2023/10/10 06:16] – [Cmake - クロスプラットフォームの make システム] ともやん
行 1: 行 1:
-====== Cmake - クロスプラットフォームの make システム ======+====== Cmake - クロスプラットフォームのコンパイラに依存しない make 自動化システム ======
 {{:c_cpp:cmake_logo-main.png?200|cmake logo}}\\ {{:c_cpp:cmake_logo-main.png?200|cmake logo}}\\
 [[https://cmake.org/|Cmake]]\\ [[https://cmake.org/|Cmake]]\\
 CMake は、ソフトウェアの構築、テスト、および、パッケージングを行うために設計された、オープンソースのクロスプラットフォームのツールである。CMake は単純なプラットフォームとコンパイラに依存しない設定ファイルを使ってソフトウェアのコンパイルプロセスを制御し、ネイティブの makefile とワークスペースを生成するのに使われる。実際のビルドにおいては、make、Xcode、Visual Studio のようなネイティブのビルド環境が利用される。一連の CMake ツールは、Insight Segmentation and Registration Toolkit(ITK) や可視化ソフトウェアである Visualization Toolkit(VTK) などのオープンソースプロジェクト用の強力なクロスプラットフォーム構築環境の必要性に応えて Kitware 社によって開発された。\\ 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 である。
  
 ===== インストール ===== ===== インストール =====
行 10: 行 13:
 </code> </code>
 ※cmake-gui は Cmake のための QT GUI。\\ ※cmake-gui は Cmake のための QT GUI。\\
 +
 +===== 使い方 =====
 +
 +==== Makefile を生成 ====
 +build ディレクトリを作成して、その中に Makefile を生成する。
 +<code>
 +$ cd project_dir
 +$ mkdir build && cd build
 +</code>
 +<code>
 +$ cmake ..
 +</code>
 +or
 +<code>
 +$ cmake -G "Unix Makefiles" -DCMAKE_BUILD_TYPE=Debug ..
 +</code>
 +
 +==== ビルド ====
 +build ディレクトリの中でビルドを開始する。
 +<code>
 +$ make
 +</code>
 +or
 +<code>
 +$ make -j4
 +</code>
 +
 +==== CMakeLists.txt の作成 ====
 +<file autoconf 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)
 +</file>
 +
 +=== Chromium Embedded Framework(CEF) コンフィギュレーション ===
 +<code autoconf>
 +#
 +# 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})
 +</code>
 +
 +===== 参考文献 =====
 +[[qita>osamu0329/items/7de2b190df3cfb4ad0ca|CMake : out-of-sourceビルドで幸せになる - Qiita]]\\
 +
  • c_cpp/cmake.txt
  • 最終更新: 2023/10/10 07:03
  • by ともやん