azure-c-shared-utility

Azure C SDKの土台となる、azure-c-shared-utilityをビルドしてみました。

リポジトリをclone

Setupのとおり、--recursiveオプションを付けてgit cloneします。

C:\Users\takashi\Documents\github>git clone --recursive https://github.com/Azure/azure-c-shared-utility.git
Cloning into 'azure-c-shared-utility'...
remote: Counting objects: 15474, done.
...
Submodule path 'testtools/umock-c/deps/testrunner': checked out 'f73e0a91e295fb64b94d72aaf16fa54d3079be22'

C:\Users\takashi\Documents\github>

何事も無く成功。約23MB。

参照しているサブモジュールは5つでした。

Submodule 'testtools/ctest' (https://github.com/Azure/azure-ctest.git) registered for path 'testtools/ctest'
Submodule 'testtools/testrunner' (https://github.com/Azure/azure-c-testrunnerswitcher.git) registered for path 'testtools/testrunner'
Submodule 'testtools/umock-c' (https://github.com/Azure/umock-c.git) registered for path 'testtools/umock-c'
Submodule 'deps/azure-ctest' (https://github.com/Azure/azure-ctest.git) registered for path 'testtools/umock-c/deps/ctest'
Submodule 'deps/testrunner' (https://github.com/Azure/azure-c-testrunnerswitcher.git) registered for path 'testtools/umock-c/deps/testrunner'

ビルド準備

cmakeを実行します。

C:\Users\takashi\Documents\github>cd azure-c-shared-utility

C:\Users\takashi\Documents\github\azure-c-shared-utility>cmake ..
CMake Error: The source directory "C:/Users/takashi/Documents/github" does not appear to contain CMakeLists.txt.
Specify --help for usage, or press the help button on the CMake GUI.

C:\Users\takashi\Documents\github\azure-c-shared-utility>

エラーになりました。CMakeLists.txtが無いって。そりゃそうですよ、一つ上の階層はcloneしていませんから。ドキュメントが間違っているのかな。

気を取り直して、cloneしたフォルダでcmakeを実行します。

C:\Users\takashi\Documents\github\azure-c-shared-utility>cmake .
-- Building for: Visual Studio 15 2017
-- The C compiler identification is MSVC 19.12.25831.0
-- The CXX compiler identification is MSVC 19.12.25831.0
-- Check for working C compiler: C:/Program Files (x86)/Microsoft Visual Studio/2017/Professional/VC/Tools/MSVC/14.12.25827/bin/Hostx86/x86/cl.exe
-- Check for working C compiler: C:/Program Files (x86)/Microsoft Visual Studio/2017/Professional/VC/Tools/MSVC/14.12.25827/bin/Hostx86/x86/cl.exe -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working CXX compiler: C:/Program Files (x86)/Microsoft Visual Studio/2017/Professional/VC/Tools/MSVC/14.12.25827/bin/Hostx86/x86/cl.exe
-- Check for working CXX compiler: C:/Program Files (x86)/Microsoft Visual Studio/2017/Professional/VC/Tools/MSVC/14.12.25827/bin/Hostx86/x86/cl.exe -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Looking for include file stdint.h
-- Looking for include file stdint.h - found
-- Looking for include file stdbool.h
-- Looking for include file stdbool.h - found
-- target architecture: x86
-- Performing Test CXX_FLAG_CXX11
-- Performing Test CXX_FLAG_CXX11 - Success
-- Configuring done
-- Generating done
-- Build files have been written to: C:/Users/takashi/Documents/github/azure-c-shared-utility

C:\Users\takashi\Documents\github\azure-c-shared-utility>

Visual Studio 15 2017向けのものをMSVCでコンパイルするよう準備したようです。

どこに何が出来上がっているのか分からないのですが、トップフォルダにこれらのファイルが出来上がっていました。

f:id:matsujirushix:20171224120843p:plain

ビルド

cmake --buildを実行します。

C:\Users\takashi\Documents\github\azure-c-shared-utility>cmake --build .
.NET Framework 向け Microsoft (R) Build Engine バージョン 15.5.180.51428
Copyright (C) Microsoft Corporation.All rights reserved.

2017/12/24 12:09:57 にビルドを開始しました。
ノード 1 上のプロジェクト "C:\Users\takashi\Documents\github\azure-c-shared-utility\ALL_BUILD.vcxproj" (既定のターゲット)。
...
ビルドに成功しました。
    0 個の警告
    0 エラー

経過時間 00:00:13.54

C:\Users\takashi\Documents\github\azure-c-shared-utility>

Debugフォルダのaziotsharedutil.libがビルド結果のようです。

f:id:matsujirushix:20171224123111p:plain