MochiuWiki : SUSE, EC, PCB
案内
メインページ
最近の更新
おまかせ表示
MediaWiki についてのヘルプ
ツール
リンク元
関連ページの更新状況
特別ページ
ページ情報
We ask for
Donations
検索
個人用ツール
ログイン
Toggle dark mode
名前空間
ページ
議論
表示
閲覧
ソースを閲覧
履歴を表示
CMake - ファイルのソースを表示
提供: MochiuWiki : SUSE, EC, PCB
←
CMake - ファイル
あなたには「このページの編集」を行う権限がありません。理由は以下の通りです:
この操作は、次のグループのいずれかに属する利用者のみが実行できます:
管理者
、new-group。
このページのソースの閲覧やコピーができます。
== 概要 == <br><br> == コピー == <code>configure_file</code>コマンドを使用して、ソースディレクトリ内のファイルをビルドディレクトリへコピーする。<br> <u>また、<code>@ONLY</code>オプションを付加して、@<文字列>@形式の変数をファイル内で置換することもできる。</u><br> <syntaxhighlight lang="cmake"> configure_file(<コピー元のファイルのパス> ${CMAKE_CURRENT_BINARY_DIR}/<コピー先のファイルのパス> @ONLY) # 例: # /<プロジェクトディレクトリ>/etc/hoge.conf.inファイルを/<ビルドディレクトリ>/etcディレクトリにコピー # @ONLYオプションを付加して、hoge.conf.inファイル内の@<文字列>@形式の変数をCMake変数で置換 configure_file(${CMAKE_CURRENT_SOURCE_DIR}/etc/hoge.conf.in ${CMAKE_CURRENT_BINARY_DIR}/etc/hoge.conf @ONLY) </syntaxhighlight> <br><br> == インストールルール == <code>install</code>コマンドを使用して、ファイルを任意のディレクトリにインストールする。<br> <code>CACHE PATH</code>オプションを付加して独自の変数を定義することにより、CMakeのコマンドラインオプション-D<オプション名>=を付加してパスをカスタマイズすることができる。<br> <syntaxhighlight lang="cmake"> install(FILES <インストール元のファイルのパス> DESTINATION <インストール先のディレクトリのパス>) # 例: # /<ビルドディレクトリ>/etc/hoge.confファイルを、CMake変数SYSCONF_DIRで指定したディレクトリへインストール # cmakeコマンドの実行時にデフォルトのインストールディレクトリを上書きする場合は、cmake .. -DSYSCONF_DIR=$HOME/.config/hogeのように指定する set(SYSCONF_DIR "/etc/hoge" CACHE PATH "Directory to install hoge.conf") install(FILES ${CMAKE_BINARY_DIR}/hoge.conf DESTINATION ${SYSCONF_DIR}) </syntaxhighlight> <br> インストールするファイルに実行権限を付与する場合は、<code>install</code>コマンドに<code>PROGRAM</code>オプションを付加する。<br> <syntaxhighlight lang="cmake"> # 実行権限を付与して、インストール先のディレクトリにコピーする install(PROGRAMS ${CMAKE_CURRENT_BINARY_DIR}/sample.sh DESTINATION ${CMAKE_INSTALL_BINDIR} ) </syntaxhighlight> <br><br> == 実行ファイルの構築 (add_executableコマンド) == <code>add_executable</code>コマンドは、CMakeにソースファイルのセットから実行ファイルを作成する。<br> <syntaxhighlight lang="cmake"> add_executable( <ターゲット名> <ソースコードファイル名 1> <ソースコードファイル名 2> # ...略 ) # 例. myAppまたはmyApp.exeという名前の実行ファイルが生成される add_executable( myApp main.cpp ) </syntaxhighlight> <br> <code><ターゲット名></code>には、英数字、アンダースコア、ハイフンを使用することができる。<br> CMakeプロジェクトのビルドが正常に終了すると、<code><ターゲット名></code>として実行ファイルが作成される。<br> <br> ターゲット名は、CMakeの機能であるターゲットプロパティでカスタマイズすることもできる。<Br> また、ターゲット名を変更して、<code>add_executable</code>コマンドを複数回呼び出すことにより、1つのCMakeLists.txtファイル内で複数の実行ファイルを定義することができる。<br> <br> ただし、同じターゲット名を複数の<code>add_executable</code>コマンドで使用する場合は、CMakeは失敗してエラーがハイライトされる。<br> <br> <syntaxhighlight lang="cmake"> # CMakeプロジェクトの例 cmake_minimum_required(VERSION 3.2) # C++コンパイラは未使用とするため、プラットフォームが持っていない場合に備えて、projectコマンドで使用されないように指定する project(MyApp VERSION 4.7.2 LANGUAGES C) # メインの実行ファイルを生成 add_executable( mainTool main.c debug.c # リリースビルドのために最適化される ) # サブの実行ファイルの生成 add_executable( testTool testTool.c ) </syntaxhighlight> <br><br> == ライブラリの構築 (add_libraryコマンド) == CMakeは様々な種類のライブラリのビルドをサポートしている。<br> ライブラリを作成して使用する場合、<code>add_library</code>コマンドを使用する。<br> <syntaxhighlight lang="cmake"> add_library( <ターゲット名> [<STATIC または SHARED または MODULE>] [EXCLUDE_FROM_ALL] <ソースコードファイル名 1> <ソースコードファイル名 2> # ...略 ) </syntaxhighlight> <br> <code><ターゲット名></code>は、CMakeLists.txtファイル内でライブラリを参照するために使用される。<br> ビルドされたライブラリ名は、<code><ターゲット名></code>となる。<br> <br> <code>EXCLUDE_FROM_ALL</code>オプションは、<code>add_executable</code>コマンドと同様、ライブラリがデフォルトのALLターゲットに含まれないようにする。<br> 構築するライブラリの種類は、<code>STATIC</code>、<code>SHARED</code>、<code>MODULE</code>のうちの1つを指定する。<br> <br> * STATICオプション *: 静的ライブラリまたはアーカイブを指定する。 *: Windowsでは、デフォルトのライブラリ名は、<u><ライブラリファイル名>.lib</u>となる。 *: Linuxでは、デフォルトのライブラリ名は、<u>lib<ライブラリファイル名>.a</u>となる。 * SHARED *: 共有ライブラリまたは動的ライブラリを指定する。 *: Windowsでは、デフォルトのライブラリ名は、<u><ライブラリファイル名>.dll</u>となる。 *: Linuxでは、デフォルトのライブラリ名は、<u>lib<ライブラリファイル名>.so</u>となる。 * MODULE *: 共有ライブラリに似ているが、ライブラリや実行ファイルに直接リンクされるのではなく、実行時に動的にロードされることを意図しているライブラリを指定する。 *: これらは、ユーザがロードするかどうかを選択できるプラグイン、または、オプションのコンポーネントである。 *: Windowsでは、DLL向けのインポートライブラリは作成されない。 <br> よほどのことがない限り、<code>STATIC</code>または<code>SHARED</code>オプションは、それが必要であることが分かるまで付加しないことを推奨する。<br> これにより、プロジェクト全体を通して、スタティックライブラリかダイナミックライブラリかをより柔軟に選択することができる。<br> <br> ビルドするライブラリの種類を定義するオプションを省略することも可能である。<br> 特定のライブラリが必要でない限り、プロジェクトファイルには指定せずに、プロジェクトの構築時に開発者が選択できるようにすることが望ましい。<br> そのような場合、ライブラリは<code>STATIC</code>か<code>SHARED</code>のどちらかになり、変数<code>BUILD_SHARED_LIBS</code>の値により選択される。<br> <br> 変数<code>BUILD_SHARED_LIBS</code>が<code>true</code>を代入する場合はライブラリのターゲットはダイナミックライブラリ、それ以外の場合はスタティックライブラリとなる。<br> <code>add_library</code>コマンドを呼び出すたびに変更する必要がなく、1ヶ所に記述するだけで設定を変更することができる。<br> ただし、<code>add_library</code>コマンドを呼び出す前に、変数<code>BUILD_SHARED_LIBS</code>を記述する必要がある。<br> <syntaxhighlight lang="cmake"> set(BUILD_SHARED_LIBS YES) </syntaxhighlight> <br> 変数<code>BUILD_SHARED_LIBS</code>を設定する方法として、<code>cmake</code>コマンドに<code>-DBUILD_SHARED_LIBS</code>オプションを付加する方法がある。<br> cmake -DBUILD_SHARED_LIBS=YES /path/to/source <br><br> {{#seo: |title={{PAGENAME}} : Exploring Electronics and SUSE Linux | MochiuWiki |keywords=MochiuWiki,Mochiu,Wiki,Mochiu Wiki,Electric Circuit,Electric,pcb,Mathematics,AVR,TI,STMicro,AVR,ATmega,MSP430,STM,Arduino,Xilinx,FPGA,Verilog,HDL,PinePhone,Pine Phone,Raspberry,Raspberry Pi,C,C++,C#,Qt,Qml,MFC,Shell,Bash,Zsh,Fish,SUSE,SLE,Suse Enterprise,Suse Linux,openSUSE,open SUSE,Leap,Linux,uCLnux,Podman,電気回路,電子回路,基板,プリント基板 |description={{PAGENAME}} - 電子回路とSUSE Linuxに関する情報 | This page is {{PAGENAME}} in our wiki about electronic circuits and SUSE Linux |image=/resources/assets/MochiuLogo_Single_Blue.png }} __FORCETOC__ [[カテゴリ:C]][[カテゴリ:C++]][[カテゴリ:Qt]]
CMake - ファイル
に戻る。
案内
メインページ
最近の更新
おまかせ表示
MediaWiki についてのヘルプ
ツール
リンク元
関連ページの更新状況
特別ページ
ページ情報
We ask for
Donations
Collapse