Windows 10上のC++Builder 10.2.3を使って CMake + Ninjaのインストールとビルド確認を行う

CMakeのインストール

  1. https://cmake.org/ からダウンロードする
    cmake-3.11.0-rc4-win64-x64.msiをダウンロードした。

2.インストール

Ninjaのインストール

  1. https://ninja-build.org/ ここからダウンロード
  2. ninja-win.zipを解凍
  3. PATHの通っているどこかにninja.exeをコピー
    2018-03-281025.png

CMakeを C++BuilderのC++コンパイラを使えるように設定

  1. C:\Program Files\CMake\share\cmake-3.11\Modules\Platform を開く
  2. Windows-Embarcadero.cmakeファイルを確認する。
  3. Windows-Embarcadero.cmakeを置き換える
rename "C:\Program Files\CMake\share\cmake-3.11\Modules\Platform\Windows-Embarcadero.cmake" "C:\Program Files\CMake\share\cmake-3.11\Modules\Platform\Windows-Embarcadero.cmake.bak" 
copy "C:\Program Files (x86)\Embarcadero\Studio\19.0\cmake\Windows-Embarcadero.cmake" "C:\Program Files\CMake\share\cmake-3.11\Modules\Platform\Windows-Embarcadero.cmake" 

チェックするためC++のコードを書く

main1.cpp
#include <vcl.h>
#include <windows.h>

#pragma hdrstop
#pragma argsused
#include <iostream>
#include "Funcs.h"

int main(int argc, _TCHAR* argv[])
{
    const auto a = 4;
    const std::string str = GetMessage__1();

    std::cout << str.c_str() << std::endl;
    PrintResult([=]() { return a + str.length(); });

    return 0;
}

1つではなんなんで他のソースも作る

Funcs.h
//---------------------------------------------------------------------------

#ifndef FuncsH
#define FuncsH
//---------------------------------------------------------------------------
#include <iostream>

template <typename F>
void PrintResult(F f)
{
    std::cout << f() << std::endl;
}

std::string GetMessage__1();
#endif
Funcs.cpp
//---------------------------------------------------------------------------

#pragma hdrstop

#include "Funcs.h"
#include <iostream>
//---------------------------------------------------------------------------
#pragma package(smart_init)
std::string GetMessage__1()
{
    return "Hello world.";
}

3つのファイルを同じフォルダーに全て入れる。

CMake + Ninjaでビルド

1.CMakeLists.txtを作成し設定

CMakeLists.txt
cmake_minimum_required(VERSION 3.9)
project (cmake_test_p)
set_embt_target(VCL DynamicRuntime)
file(GLOB Example_SRC
   "*.h"
   "*.cpp"
)
add_executable (cmake_test_p  ${Example_SRC})

install(TARGETS cmake_test_p
            RUNTIME DESTINATION bin
            LIBRARY DESTINATION lib
            ARCHIVE DESTINATION lib/static
)

2.CMakeコマンド実行

bccの64bitコンパイラを利用するコマンド

cmake -DCMAKE_C_COMPILER=bcc64.exe -DCMAKE_CXX_COMPILER=bcc64.exe -G Ninja 

3.Ninja実行

ninja

ninjaを実行後
cmake_test_p.exe 完成

関連

C++ Builder での CMake の利用
10.2.3 最新版の CMakeサポート
C++Builderダウンロード先

Sign up for free and join this conversation.
Sign Up
If you already have a Qiita account log in.