changeset 11:33a4e0db0664

add html
author ikkun <ikkun@cr.ie.u-ryukyu.ac.jp>
date Fri, 16 Jun 2017 20:16:24 +0900
parents 33cbafd41036
children eef7b6e3dac3
files osc.html
diffstat 1 files changed, 259 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/osc.html	Fri Jun 16 20:16:24 2017 +0900
@@ -0,0 +1,259 @@
+<!DOCTYPE html>
+<html>
+<head>
+   <meta http-equiv="content-type" content="text/html;charset=utf-8">
+   <title>CMake 入門</title>
+
+<meta name="generator" content="Slide Show (S9) v2.5.0 on Ruby 1.9.3 (2011-10-30) [x86_64-darwin10]">
+<meta name="author"    content="Takui Higashionna" >
+
+<!-- style sheet links -->
+<link rel="stylesheet" href="s6/themes/projection.css"   media="screen,projection">
+<link rel="stylesheet" href="s6/themes/screen.css"       media="screen">
+<link rel="stylesheet" href="s6/themes/print.css"        media="print">
+<link rel="stylesheet" href="s6/themes/blank.css"        media="screen,projection">
+
+<!-- JS -->
+<script src="s6/js/jquery-1.11.3.min.js"></script>
+<script src="s6/js/jquery.slideshow.js"></script>
+<script src="s6/js/jquery.slideshow.counter.js"></script>
+<script src="s6/js/jquery.slideshow.controls.js"></script>
+<script src="s6/js/jquery.slideshow.footer.js"></script>
+<script src="s6/js/jquery.slideshow.autoplay.js"></script>
+
+<!-- prettify -->
+<link rel="stylesheet" href="scripts/prettify.css">
+<script src="scripts/prettify.js"></script>
+
+<script>
+  $(document).ready( function() {
+    Slideshow.init();
+
+    $('code').each(function(_, el) {
+      if (!el.classList.contains('noprettyprint')) {
+        el.classList.add('prettyprint');
+        el.style.display = 'block';
+      }
+    });
+    prettyPrint();
+  } );
+
+  
+</script>
+
+<!-- Better Browser Banner for Microsoft Internet Explorer (IE) -->
+<!--[if IE]>
+<script src="s6/js/jquery.microsoft.js"></script>
+<![endif]-->
+
+
+
+</head>
+<body>
+
+<div class="layout">
+  <div id="header"></div>
+  <div id="footer">
+    <div align="right">
+      <img src="s6/images/logo.svg" width="200px">
+    </div>
+  </div>
+</div>
+
+<div class="presentation">
+
+  <div class='slide cover'>
+    <table width="90%" height="90%" border="0" align="center">
+      <tr>
+        <td>
+          <div align="center">
+            <h1><font color="#808db5">CMake 入門</font></h1>
+          </div>
+        </td>
+      </tr>
+      <tr>
+        <td>
+          <div align="left">
+            Takui Higashionna
+            
+            <hr style="color:#ffcc00;background-color:#ffcc00;text-align:left;border:none;width:100%;height:0.2em;">
+          </div>
+        </td>
+      </tr>
+    </table>
+  </div>
+
+<div class='slide '>
+<!-- === begin markdown block ===
+
+      generated by markdown/1.2.0 on Ruby 1.9.3 (2011-10-30) [x86_64-darwin10]
+                on 2017-06-16 20:16:00 +0900 with Markdown engine kramdown (1.9.0)
+                  using options {}
+  -->
+
+<!-- _S9SLIDE_ -->
+<h1 id="cmake">Cmakeとはなにか</h1>
+<ul>
+  <li>ビルドプロセスを管理するツール</li>
+  <li>
+    <p>ビルドプロセスとは</p>
+  </li>
+  <li>ソースコードをコンパイルする</li>
+  <li>ソースコードとコンパイラを探す</li>
+  <li>コンパイルされた.oファイルをリンクしてライブラリや実行形式にする</li>
+  <li>テストコードを使ってテストを行う</li>
+  <li>生成されたライブラリやコマンドをインストールする</li>
+  <li>パッケージを作成して配布可能な形にする</li>
+</ul>
+
+
+</div>
+<div class='slide '>
+<!-- _S9SLIDE_ -->
+<h1 id="section">従来の方法</h1>
+<ul>
+  <li>makeを使う。makefileを直接書きくだす</li>
+  <li>automakeとautoconfを使う</li>
+  <li>Javaならばmavenあるいはgradleを用いる</li>
+</ul>
+
+
+</div>
+<div class='slide '>
+<!-- _S9SLIDE_ -->
+<h1 id="section-1">従来の方法の欠点</h1>
+<ul>
+  <li>Makefileは本質的にシステム依存(コンパイラの場所、ライブラリの場所)</li>
+  <li>automakeは煩雑で難易度が高い</li>
+  <li>mavenはjavaにしか対応していない</li>
+</ul>
+
+
+</div>
+<div class='slide '>
+<!-- _S9SLIDE_ -->
+<h1 id="cmake-1">CMakeを使う利点</h1>
+<ul>
+  <li>設定ファイル(CMakeLists.txt)がシンプル</li>
+  <li>CMakeがコンパイラやライブラリを自動的に検索する</li>
+  <li>テストやパッケージング用のプラグインが豊富にある</li>
+  <li>Makefileを生成し、実際のビルドはmakeコマンドで行う</li>
+  <li>out-of-placeビルド対応(ソースツリーの外でビルドを行う)</li>
+  <li>Ninjaによる並列コンパイルが可能</li>
+</ul>
+
+
+</div>
+<div class='slide '>
+<!-- _S9SLIDE_ -->
+<h1 id="cmake-2">実際にCMakeを使ってみよう</h1>
+<ul>
+  <li>Hello World用のCMakeLists.txtを作る</li>
+  <li>Makefileを生成しビルドしてみる</li>
+  <li>out-of-placeビルドを試してみる</li>
+  <li>テストを行う</li>
+  <li>ソースコード生成を試してみる</li>
+  <li>CUDAを使ってみる</li>
+  <li>Ninja</li>
+</ul>
+
+
+</div>
+<div class='slide '>
+<!-- _S9SLIDE_ -->
+<h1 id="hello-worldcmakeliststxt">Hello World用のCMakeLists.txtを作る</h1>
+
+<ul>
+  <li>target名とソースコードを以下のように指定する</li>
+</ul>
+
+<p>add_executable ( hello hellow.c )</p>
+
+<ul>
+  <li>helloがtarget名となる</li>
+  <li>target名が生成される実行形式(コマンド)の名前となる。</li>
+  <li>makeコマンドのターゲットにもなる
+<a href="file:sample/CmakeLists.txt">CmakeLists.txt</a></li>
+</ul>
+
+
+</div>
+<div class='slide '>
+<!-- _S9SLIDE_ -->
+<h1 id="makefile">Makefileを生成しビルドしてみる</h1>
+<ul>
+  <li>cmake .でMakefileを作成する</li>
+  <li>make helloでビルドする</li>
+  <li>生成されたhelloファイルを./helloで実行する</li>
+  <li>MakeFileを作り直す場合、MakeFilesとMakeFileCache.txtを削除してから</li>
+</ul>
+
+
+</div>
+<div class='slide '>
+<!-- _S9SLIDE_ -->
+<h1 id="auto-of-place">auto-of-placeビルドを試してみる</h1>
+<ul>
+  <li>別のディレクトリに移動し、cmake ./hoge/hello でそのディレクトリにMakeFileを作成することができる</li>
+</ul>
+
+
+</div>
+<div class='slide '>
+<!-- _S9SLIDE_ -->
+<h1 id="section-2">テストを行う</h1>
+<ul>
+  <li>MakeLists.txtに以下の様にかく
+<a href="file:sample1/CmakeLists.txt">CmakeLists.txt</a></li>
+  <li>CMake .でMakeFileを作成する</li>
+  <li>make testでテストすることができる。</li>
+</ul>
+
+
+</div>
+<div class='slide '>
+<!-- _S9SLIDE_ -->
+<h1 id="section-3">ソースコード生成を試してみる</h1>
+
+
+</div>
+<div class='slide '>
+<!-- _S9SLIDE_ -->
+<h1 id="cuda">CUDAを使ってみる</h1>
+<ul>
+  <li>プロジェクトに必要なcmakeの最低バージョンをを設定します。
+cmake_minimum_required(VERSION 3.7)</li>
+  <li>必要なCUDAのパッケージを設定します。
+find_package(CUDA REQUIRED)</li>
+  <li>必要なCUDAライブラリのpathを設定します。
+include_directories(/Developer/NVIDIA/CUDA-8.0/samples/common/inc)</li>
+  <li>target名とソースコードを以下のように指定する
+cuda_add_executable(matrixMul matrixMul.cu)</li>
+  <li>cmake .でMakefileを作成し、make matrixMul.cuでビルドします</li>
+</ul>
+
+
+</div>
+<div class='slide '>
+<!-- _S9SLIDE_ -->
+<h1 id="ninja">Ninja</h1>
+<ul>
+  <li>cmkae に -G Ninjaオプションをつけてninjaのbuildファイルとルールファイルを作成します。</li>
+  <li>ninjaでNinjaによるコンパイルを行います。</li>
+</ul>
+
+<p>LLVMの例題もやるのでLLVMの場所も書いておく</p>
+
+
+</div>
+<div class='slide '>
+<!-- _S9SLIDE_ -->
+<h1 id="section-4">まとめ</h1>
+
+<!-- === end markdown block === -->
+</div>
+
+
+</div><!-- presentation -->
+</body>
+</html>