CppRestAPIのCMakeプロジェクト構造について
Share
チュートリアルに入る前にCMake、cpprestsdk、mysql-connector-cppのCppRestAPIにおける利用方法ついて説明します。
CMakeではまずディレクトリ構成を決めることでプロジェクト管理が容易になります。
ディレクトリ構造をトップレベルのCMakeLists.txtで一定の様式を参考にすると決めやすくなります。CMakeLists.txtで設定する各項目を以下のように定めます。
・Preamble
プロジェクト名やバージョンの設定を行います。トップレベルのCMakeLists.txtで設定します。
・Project wide setup
プロジェクト全体を通して使用する変数等を設定します。トップレベルのCMakeLists.txtで設定します。
・Dependencies
依存するパッケージを探します。一般的なディレクトリ構造のパッケージはcmakeの関数で探せます。dependencies/CMakeLists.txtで設定します。
・Main build targets
ソースプログラムのビルド設定を行います。各ソースの依存関係を解決します。依存関係の解決はcmake/libs/DirectoryName.cmakeに設定します。src/CMakeLists.txtで設定します。プログラムのコンフィグファイルをinclude/configディレクトリに配置します。cmakeの関数でplaceholderを置き換える設定をinclude/CMakeLists.txtに設定します。
・Tests
テスト用プログラムのビルド設定を行います。依存関係の解決はcmake/tests/DirectoryNameTest.cmakeに設定します。tests/CMakeLists.txtで設定します。
・Packaging
CPackの設定を行います。packaging/CMakeLists.txtで設定します。
scripts/build.shでビルドします。ビルド結果は/CppRestApi/buildにできあがります。上記プロジェクト設定でビルドした場合、トップレベルのCMakeLists.txtでは各サブディレクトリをadd_subdirectory関数で取り込んでいます。そのためbuildフォルダ以下に各CMakeLists.txtを配置しているディレクトリができあがります。CMakeLists.txtでcmakeプロジェクトの依存関係の解決がなされるため、他のプロジェクトからadd_subdirectory関数で取り込むことができます。