製品について

トップレベルのCMakeLists.txt

トップレベルのCMakeLists.txtの各セクションを設定します。 PreambleセクションでCMakeのバージョン、プロジェクトの設定を行います。 cmake_minimum_required(VERSION cmake_version)project(CppRestApi VERSION project_persion) バージョンは一般的にMajor.Minor.Patch形式で指定します。 ctestを行うためにCTest、CTestUseLaunchersモジュールをインクルードします。 include(CTest)include(CTestUseLaunchers) @loader_path、$ORIGIN変数を使ってrpathの設定を行います。パッケージの一般的なディレクトリ構造のための設定を行うGNUInstallDirsモジュールをインクルードしてlibsディレクトリへのrpathを指定します。 include(GNUInstallDirs) set(CMAKE_INSTALL_RPATH base_path libs_path) 以上でPreambleセクションの設定は終わりです。 Project wide setupセクションでプロジェクト全体の設定を行います。 デフォルトで共有ライブラリとしてビルドを行います。 option(BUILD_SHARED_LIBS "Build using shared libraries" ON) 依存関係やパッケージインストール設定を行うcmakeファイルのモジュールパスを指定します。モジュールパス設定後、プロジェクトではinclude(DirectoryName.cmake)でcmakeファイルを呼び出しスコープで実行します。 list(APPEND CMAKE_MODULE_PATH ${CMAKE_CURRENT_LIST_DIR}/cmake/libs)list(APPEND CMAKE_MODULE_PATH...

トップレベルのCMakeLists.txt

トップレベルのCMakeLists.txtの各セクションを設定します。 PreambleセクションでCMakeのバージョン、プロジェクトの設定を行います。 cmake_minimum_required(VERSION cmake_version)project(CppRestApi VERSION project_persion) バージョンは一般的にMajor.Minor.Patch形式で指定します。 ctestを行うためにCTest、CTestUseLaunchersモジュールをインクルードします。 include(CTest)include(CTestUseLaunchers) @loader_path、$ORIGIN変数を使ってrpathの設定を行います。パッケージの一般的なディレクトリ構造のための設定を行うGNUInstallDirsモジュールをインクルードしてlibsディレクトリへのrpathを指定します。 include(GNUInstallDirs) set(CMAKE_INSTALL_RPATH base_path libs_path) 以上でPreambleセクションの設定は終わりです。 Project wide setupセクションでプロジェクト全体の設定を行います。 デフォルトで共有ライブラリとしてビルドを行います。 option(BUILD_SHARED_LIBS "Build using shared libraries" ON) 依存関係やパッケージインストール設定を行うcmakeファイルのモジュールパスを指定します。モジュールパス設定後、プロジェクトではinclude(DirectoryName.cmake)でcmakeファイルを呼び出しスコープで実行します。 list(APPEND CMAKE_MODULE_PATH ${CMAKE_CURRENT_LIST_DIR}/cmake/libs)list(APPEND CMAKE_MODULE_PATH...

CppRestAPIのCMakeプロジェクト構造について

チュートリアルに入る前に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関数で取り込むことができます。

CppRestAPIのCMakeプロジェクト構造について

チュートリアルに入る前に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関数で取り込むことができます。

CDashにテスト結果を報告する

CppRestAPIの環境設定でダウンロードしたCDashフォルダに入ります。 コマンドを実行してdockerコンテナを起動します。 cd /path_to/cpprestapi/ThirdParty/CDash docker compose -f docker/docker-compose.yml \ -f docker/docker-compose.dev.yml \ -f docker/docker-compose.postgres.yml \ --env-file .env.dev up -d docker exec --user www-data cdash bash -c "php artisan user:save --email=email...

CDashにテスト結果を報告する

CppRestAPIの環境設定でダウンロードしたCDashフォルダに入ります。 コマンドを実行してdockerコンテナを起動します。 cd /path_to/cpprestapi/ThirdParty/CDash docker compose -f docker/docker-compose.yml \ -f docker/docker-compose.dev.yml \ -f docker/docker-compose.postgres.yml \ --env-file .env.dev up -d docker exec --user www-data cdash bash -c "php artisan user:save --email=email...

CppRestAPIの環境設定

unix or mac ・cpprestapiを解凍します。 tar -xvzf cpprestapi.tar.gz   ・CDash、mysql-connector-cppをダウンロードします。 cd /path_to/cpprestapi/ThirdParty sh setup.sh CDashについては後で別の記事にします。   ・Ubuntuの実行環境用コンテナを作成します。 /path_to/cpprestapi/Dockerfileの下から3行をコメントアウトします。 #COPY . /CppRestApi #WORKDIR /CppRestApi/ThirdParty/mysql-connector-cpp #RUN cmake --build . --target install   ・dockerを立ち上げます。...

CppRestAPIの環境設定

unix or mac ・cpprestapiを解凍します。 tar -xvzf cpprestapi.tar.gz   ・CDash、mysql-connector-cppをダウンロードします。 cd /path_to/cpprestapi/ThirdParty sh setup.sh CDashについては後で別の記事にします。   ・Ubuntuの実行環境用コンテナを作成します。 /path_to/cpprestapi/Dockerfileの下から3行をコメントアウトします。 #COPY . /CppRestApi #WORKDIR /CppRestApi/ThirdParty/mysql-connector-cpp #RUN cmake --build . --target install   ・dockerを立ち上げます。...