GDAL development with IDE by CMake

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
9 messages Options
Reply | Threaded
Open this post in threaded view
|

GDAL development with IDE by CMake

Hiroshi Miura(@osmf)
OSMFJ 三浦です。

GDALの開発に関わったきっかけがありましたので、ビルドシステムの変更にむけた貢献をしたいとおもいました。

GDALはC++を用いて開発されていますが、各プラットフォームのC++コンパイラにあわせて、ビルドシステムを複数(GNU Make,
NMake/VC++)メンテナンスしています。また、テストについて、全体のコンパイル後に自動テストが実行される仕組みになっています。

GDALのような大規模なソフトウエアの、C++開発やリファクタリングの生産性を考えますと、インクりメンタルコンパイルや、IDEの適用ができることが必要ではないかとおもいます。

さて、C/C++におけるIDEといえば、市場にある選択肢は、事実上2つであるとおもいます。一つは、マイクロソフトのVisual Studio
でしょう。VS2017では、最近、CMakeのネイティブサポートがされました。

https://blogs.msdn.microsoft.com/vcblog/2016/10/05/cmake-support-in-visual-studio/

もう一つは、マルチプラットフォームで利用できるJetBrainsのCLionです。これは、当初からCMakeをサポートしています。
CMakeは、複数のC/C++コンパイラや開発環境、OSに対応できるビルドシステムです。

GDALでは、2012年ころにCMakeに移植するプロジェクトがありましたが、その後5年ほど停止していました。

このような状況を鑑みて、IDEでの利用ができるように、GDALにCMakeサポートを追加することが有効ではないかと考えて、実施してみました。

https://github.com/miurahr/gdal/commits/compile_with_cmake

私のマシンのMint Linux上のCLionを利用したGCCやClangでコーディングやデバッグできるところまで進みました。また、out
of sourceコンパイルができるようになりましたので、諸条件でのテストが効率良くできます。

今後、Windowsでの開発環境への対応を行う必要があるのですが、日本のOSGEOコミュニティでは、Windowsを使われている方が多いようですので、ぜひVisual
Studio 2017などで試して協力してほしいとおもいます。

今後、GDALの開発コミュニティへチケットをあげて、マージにむけて取り組むことになりますが、ビルドシステムの更新では、さまざまな環境でも動作することが重要です。一人では、全環境での確認や全オプションの選択肢の確認はなしえませんから、みなさんの協力が不可欠です。

グローバルへの報告/呼びかけに先駆けて、日本のコミュニティに協力要請しました。
_______________________________________________
OSGeoJapan-discuss mailing list
[hidden email]
https://lists.osgeo.org/mailman/listinfo/osgeojapan-discuss
Reply | Threaded
Open this post in threaded view
|

Re: GDAL development with IDE by CMake

Nobusuke Iwasaki
三浦さん,

いわさきです.
本件,色々とご対応いただき,ありがとうございます.
正直,ほとんど開発をしたことが無いのでどの程度お役に立てるかは不明なのですが,可能な限りお手伝いをできればと考えております.

まずは,Visual Studio 2017をインストールすればいいでしょうか?
(すみません,そうした程度から始めることになります・・・)



On 2017/10/08 21:53, Miura Hiroshi wrote:

> OSMFJ 三浦です。
>
> GDALの開発に関わったきっかけがありましたので、ビルドシステムの変更にむけた貢献をしたいとおもいました。
>
> GDALはC++を用いて開発されていますが、各プラットフォームのC++コンパイラにあわせて、ビルドシステムを複数(GNU Make,
> NMake/VC++)メンテナンスしています。また、テストについて、全体のコンパイル後に自動テストが実行される仕組みになっています。
>
> GDALのような大規模なソフトウエアの、C++開発やリファクタリングの生産性を考えますと、インクりメンタルコンパイルや、IDEの適用ができることが必要ではないかとおもいます。
>
> さて、C/C++におけるIDEといえば、市場にある選択肢は、事実上2つであるとおもいます。一つは、マイクロソフトのVisual Studio
> でしょう。VS2017では、最近、CMakeのネイティブサポートがされました。
>
> https://blogs.msdn.microsoft.com/vcblog/2016/10/05/cmake-support-in-visual-studio/
>
> もう一つは、マルチプラットフォームで利用できるJetBrainsのCLionです。これは、当初からCMakeをサポートしています。
> CMakeは、複数のC/C++コンパイラや開発環境、OSに対応できるビルドシステムです。
>
> GDALでは、2012年ころにCMakeに移植するプロジェクトがありましたが、その後5年ほど停止していました。
>
> このような状況を鑑みて、IDEでの利用ができるように、GDALにCMakeサポートを追加することが有効ではないかと考えて、実施してみました。
>
> https://github.com/miurahr/gdal/commits/compile_with_cmake
>
> 私のマシンのMint Linux上のCLionを利用したGCCやClangでコーディングやデバッグできるところまで進みました。また、out
> of sourceコンパイルができるようになりましたので、諸条件でのテストが効率良くできます。
>
> 今後、Windowsでの開発環境への対応を行う必要があるのですが、日本のOSGEOコミュニティでは、Windowsを使われている方が多いようですので、ぜひVisual
> Studio 2017などで試して協力してほしいとおもいます。
>
> 今後、GDALの開発コミュニティへチケットをあげて、マージにむけて取り組むことになりますが、ビルドシステムの更新では、さまざまな環境でも動作することが重要です。一人では、全環境での確認や全オプションの選択肢の確認はなしえませんから、みなさんの協力が不可欠です。
>
> グローバルへの報告/呼びかけに先駆けて、日本のコミュニティに協力要請しました。
> _______________________________________________
> OSGeoJapan-discuss mailing list
> [hidden email]
> https://lists.osgeo.org/mailman/listinfo/osgeojapan-discuss
>
--
Nobusuke IWASAKI
e-mail:[hidden email]


_______________________________________________
OSGeoJapan-discuss mailing list
[hidden email]
https://lists.osgeo.org/mailman/listinfo/osgeojapan-discuss

signature.asc (836 bytes) Download Attachment
Reply | Threaded
Open this post in threaded view
|

Re: GDAL development with IDE by CMake

OKI Miyuki
In reply to this post by Hiroshi Miura(@osmf)
ヒューネス 沖です。


GDAL ですが、弊社でもビルドする事がありますが、もっぱら
nmake.opt を編集して、必要なライブラリを指定し、
nmake -f makefile.vc
nmake -f makefile.vc install
してました。

cmake 対応になったら、
cmake -G "Visual Studio 14 2015" -CMAKE_BUILD_TYPE=Release
とやれば、Visual Stuido ide 用のプロジェクトファイルが生成されるんで
楽になるかもしれないですね。

cmake --help  
で、-G "****" の部分の説明も出ます。

自分も、cmake のプロジェクトは、いくらか書いた事が
あるので、お手伝いしたいところですが、時間が^^;
何かの機会に、お手伝いできればとは、思ってます。

_______________________________________________
OSGeoJapan-discuss mailing list
[hidden email]
https://lists.osgeo.org/mailman/listinfo/osgeojapan-discuss
Reply | Threaded
Open this post in threaded view
|

Re: GDAL development with IDE by CMake

Hiroshi Miura(@osmf)
沖さん
OSMFJ 三浦です。

利用の期待、ありがとうございます。

Visual Studio 2017では、CMakeプロジェクトを直接扱える、うまり
通常のIDEのプロジェクトとして管理できるようになる、ということですので、
-G で指定して生成しなくても、とり扱えるようになっているようです。

もちろん、2015など以前のものには、生成してコンパイルできるようです。

今回の開発の現在の状況では、Visual Studio 2017で認識させるところまでは
半分成功していて、途中、依存ライブラリの見つけるところで、エラーになっています。

windowsでビルドするときに、依存するライブラリ(GISInternalskからダウンロードするSDKなど)
をどのように配置するか、標準的な場所(ディレクトリー)があれば、
CMakeのレシピに発見できるように修正したいと考えているのですが、
そのあたりを御教授いただけると幸いです。

三浦

On 2017年10月13日 14:19, OKI Miyuki wrote:

> ヒューネス 沖です。
>
>
> GDAL ですが、弊社でもビルドする事がありますが、もっぱら
> nmake.opt を編集して、必要なライブラリを指定し、
> nmake -f makefile.vc
> nmake -f makefile.vc install
> してました。
>
> cmake 対応になったら、
> cmake -G "Visual Studio 14 2015" -CMAKE_BUILD_TYPE=Release
> とやれば、Visual Stuido ide 用のプロジェクトファイルが生成されるんで
> 楽になるかもしれないですね。
>
> cmake --help  
> で、-G "****" の部分の説明も出ます。
>
> 自分も、cmake のプロジェクトは、いくらか書いた事が
> あるので、お手伝いしたいところですが、時間が^^;
> 何かの機会に、お手伝いできればとは、思ってます。
>
_______________________________________________
OSGeoJapan-discuss mailing list
[hidden email]
https://lists.osgeo.org/mailman/listinfo/osgeojapan-discuss
Reply | Threaded
Open this post in threaded view
|

Re: GDAL development with IDE by CMake

Hiroshi Miura(@osmf)
In reply to this post by Nobusuke Iwasaki
いわさきさん

ありがとうございます。
はい、マイクロソフトのVisual Studioのページに行くと、VS2017のコミュニティ版が無料で
ダウンロードできますので、インストールいただければとおもいます。

そのときに、インストールするオプション機能を選択する画面がありますので、
CMakeと書かれているものを選択してインストールいただくことになります。

また、GDALのソースのダウンロードでは、githubからわたしの開発版を取得する
必要があります。
https://desktop.github.com/
から、github desktop ver1.0 をダウンロードしてインストールし、
これをつかって、 https://github.com/miurahr/gdal から取得頂く必要があります。
取得は、新規にクローンするというメニューから実施いただきます。

さらには、依存ライブラリがコンパイルには必要なので、
http://www.gisinternals.com/sdk.php
から、最新のSDKの MSVC2017用をダウンロードして、展開する必要があります。
zipを展開すると、relaease-1911-x64 というフォルダがあるので、

C:\release-1911-x64\
に配置されることを想定して、CMakeの記載がされています。

VSを起動したら、フォルダを開く というメニューが画面のほぼ中央にありますので、
それを選択して、github desktopでクローンしたフォルダを選ぶことで、
テストしたい、開けるか、という試験になります。

ビルド以前に開けるか、というところからですので、
どんな風になったか、というのを試して頂けるだけでも助かります。

三浦

On 2017年10月11日 22:08, Nobusuke IWASAKI wrote:

> 三浦さん,
>
> いわさきです.
> 本件,色々とご対応いただき,ありがとうございます.
> 正直,ほとんど開発をしたことが無いのでどの程度お役に立てるかは不明なのですが,可能な限りお手伝いをできればと考えております.
>
> まずは,Visual Studio 2017をインストールすればいいでしょうか?
> (すみません,そうした程度から始めることになります・・・)
>
>
>
> On 2017/10/08 21:53, Miura Hiroshi wrote:
>> OSMFJ 三浦です。
>>
>> GDALの開発に関わったきっかけがありましたので、ビルドシステムの変更にむけた貢献をしたいとおもいました。
>>
>> GDALはC++を用いて開発されていますが、各プラットフォームのC++コンパイラにあわせて、ビルドシステムを複数(GNU Make,
>> NMake/VC++)メンテナンスしています。また、テストについて、全体のコンパイル後に自動テストが実行される仕組みになっています。
>>
>> GDALのような大規模なソフトウエアの、C++開発やリファクタリングの生産性を考えますと、インクりメンタルコンパイルや、IDEの適用ができることが必要ではないかとおもいます。
>>
>> さて、C/C++におけるIDEといえば、市場にある選択肢は、事実上2つであるとおもいます。一つは、マイクロソフトのVisual Studio
>> でしょう。VS2017では、最近、CMakeのネイティブサポートがされました。
>>
>> https://blogs.msdn.microsoft.com/vcblog/2016/10/05/cmake-support-in-visual-studio/
>>
>> もう一つは、マルチプラットフォームで利用できるJetBrainsのCLionです。これは、当初からCMakeをサポートしています。
>> CMakeは、複数のC/C++コンパイラや開発環境、OSに対応できるビルドシステムです。
>>
>> GDALでは、2012年ころにCMakeに移植するプロジェクトがありましたが、その後5年ほど停止していました。
>>
>> このような状況を鑑みて、IDEでの利用ができるように、GDALにCMakeサポートを追加することが有効ではないかと考えて、実施してみました。
>>
>> https://github.com/miurahr/gdal/commits/compile_with_cmake
>>
>> 私のマシンのMint Linux上のCLionを利用したGCCやClangでコーディングやデバッグできるところまで進みました。また、out
>> of sourceコンパイルができるようになりましたので、諸条件でのテストが効率良くできます。
>>
>> 今後、Windowsでの開発環境への対応を行う必要があるのですが、日本のOSGEOコミュニティでは、Windowsを使われている方が多いようですので、ぜひVisual
>> Studio 2017などで試して協力してほしいとおもいます。
>>
>> 今後、GDALの開発コミュニティへチケットをあげて、マージにむけて取り組むことになりますが、ビルドシステムの更新では、さまざまな環境でも動作することが重要です。一人では、全環境での確認や全オプションの選択肢の確認はなしえませんから、みなさんの協力が不可欠です。
>>
>> グローバルへの報告/呼びかけに先駆けて、日本のコミュニティに協力要請しました。
>>

_______________________________________________
OSGeoJapan-discuss mailing list
[hidden email]
https://lists.osgeo.org/mailman/listinfo/osgeojapan-discuss
Reply | Threaded
Open this post in threaded view
|

Re: GDAL development with IDE by CMake

Hiroshi Miura(@osmf)
いわさきさん
みなさん

今朝方の進捗で、WindowsのVisual Studio 2017で読み込んで、
IDEで編集などの開発ができるところまで、すすんだようです。
まだ、コンパイルは通らないですが。。

変更点があり、サードパーティの依存ライブラリのgisinternals.com のSDKのインストール先は
プロジェクトフォルダのlibs/ フォルダに展開してもらうことにしたところ、うまくいきそうです。

よろしくおねがいします。

三浦

On 2017年10月18日 12:52, Hiroshi Miura(@osmf) wrote:

> いわさきさん
>
> ありがとうございます。
> はい、マイクロソフトのVisual Studioのページに行くと、VS2017のコミュニティ版が無料で
> ダウンロードできますので、インストールいただければとおもいます。
>
> そのときに、インストールするオプション機能を選択する画面がありますので、
> CMakeと書かれているものを選択してインストールいただくことになります。
>
> また、GDALのソースのダウンロードでは、githubからわたしの開発版を取得する
> 必要があります。
> https://desktop.github.com/
> から、github desktop ver1.0 をダウンロードしてインストールし、
> これをつかって、 https://github.com/miurahr/gdal から取得頂く必要があります。
> 取得は、新規にクローンするというメニューから実施いただきます。
>
> さらには、依存ライブラリがコンパイルには必要なので、
> http://www.gisinternals.com/sdk.php
> から、最新のSDKの MSVC2017用をダウンロードして、展開する必要があります。
> zipを展開すると、relaease-1911-x64 というフォルダがあるので、
>
> C:\release-1911-x64\
> に配置されることを想定して、CMakeの記載がされています。
>
> VSを起動したら、フォルダを開く というメニューが画面のほぼ中央にありますので、
> それを選択して、github desktopでクローンしたフォルダを選ぶことで、
> テストしたい、開けるか、という試験になります。
>
> ビルド以前に開けるか、というところからですので、
> どんな風になったか、というのを試して頂けるだけでも助かります。
>
> 三浦
>
> On 2017年10月11日 22:08, Nobusuke IWASAKI wrote:
>> 三浦さん,
>>
>> いわさきです.
>> 本件,色々とご対応いただき,ありがとうございます.
>> 正直,ほとんど開発をしたことが無いのでどの程度お役に立てるかは不明なのですが,可能な限りお手伝いをできればと考えております.
>>
>> まずは,Visual Studio 2017をインストールすればいいでしょうか?
>> (すみません,そうした程度から始めることになります・・・)
>>
>>
>>
>> On 2017/10/08 21:53, Miura Hiroshi wrote:
>>> OSMFJ 三浦です。
>>>
>>> GDALの開発に関わったきっかけがありましたので、ビルドシステムの変更にむけた貢献をしたいとおもいました。
>>>
>>> GDALはC++を用いて開発されていますが、各プラットフォームのC++コンパイラにあわせて、ビルドシステムを複数(GNU Make,
>>> NMake/VC++)メンテナンスしています。また、テストについて、全体のコンパイル後に自動テストが実行される仕組みになっています。
>>>
>>> GDALのような大規模なソフトウエアの、C++開発やリファクタリングの生産性を考えますと、インクりメンタルコンパイルや、IDEの適用ができることが必要ではないかとおもいます。
>>>
>>> さて、C/C++におけるIDEといえば、市場にある選択肢は、事実上2つであるとおもいます。一つは、マイクロソフトのVisual Studio
>>> でしょう。VS2017では、最近、CMakeのネイティブサポートがされました。
>>>
>>> https://blogs.msdn.microsoft.com/vcblog/2016/10/05/cmake-support-in-visual-studio/
>>>
>>> もう一つは、マルチプラットフォームで利用できるJetBrainsのCLionです。これは、当初からCMakeをサポートしています。
>>> CMakeは、複数のC/C++コンパイラや開発環境、OSに対応できるビルドシステムです。
>>>
>>> GDALでは、2012年ころにCMakeに移植するプロジェクトがありましたが、その後5年ほど停止していました。
>>>
>>> このような状況を鑑みて、IDEでの利用ができるように、GDALにCMakeサポートを追加することが有効ではないかと考えて、実施してみました。
>>>
>>> https://github.com/miurahr/gdal/commits/compile_with_cmake
>>>
>>> 私のマシンのMint Linux上のCLionを利用したGCCやClangでコーディングやデバッグできるところまで進みました。また、out
>>> of sourceコンパイルができるようになりましたので、諸条件でのテストが効率良くできます。
>>>
>>> 今後、Windowsでの開発環境への対応を行う必要があるのですが、日本のOSGEOコミュニティでは、Windowsを使われている方が多いようですので、ぜひVisual
>>> Studio 2017などで試して協力してほしいとおもいます。
>>>
>>> 今後、GDALの開発コミュニティへチケットをあげて、マージにむけて取り組むことになりますが、ビルドシステムの更新では、さまざまな環境でも動作することが重要です。一人では、全環境での確認や全オプションの選択肢の確認はなしえませんから、みなさんの協力が不可欠です。
>>>
>>> グローバルへの報告/呼びかけに先駆けて、日本のコミュニティに協力要請しました。
>>>

_______________________________________________
OSGeoJapan-discuss mailing list
[hidden email]
https://lists.osgeo.org/mailman/listinfo/osgeojapan-discuss
Reply | Threaded
Open this post in threaded view
|

Re: GDAL development with IDE by CMake

OKI Miyuki
In reply to this post by Hiroshi Miura(@osmf)
OSMFJ 三浦さん

ヒューネス 沖です

現在、Windows における GIS関係のライブラリの
ビルド手順をドキュメント化しております。
自社で、結構利用しておりまして、都度都度
ビルドしてたんですけど、効率を考えたら、資料に
まとめた方がいいのかな?って、ところです。

 まとまったら公開します。
感想としては、かなりの割合のプロジェクトで
cmake が導入されています。

 あと、ビルドの方針としては、MSYSや CygWin系を
使わないで進めてます。
この条件でビルドできないのは、今のところ
iConv と FreeXL だけです。

しばし、お待ちを^^

> 沖さん
> OSMFJ 三浦です。
>
> 利用の期待、ありがとうございます。
>
> Visual Studio 2017では、CMakeプロジェクトを直接扱える、うまり
> 通常のIDEのプロジェクトとして管理できるようになる、ということですので、
> -G で指定して生成しなくても、とり扱えるようになっているようです。
>
> もちろん、2015など以前のものには、生成してコンパイルできるようです。
>
> 今回の開発の現在の状況では、Visual Studio 2017で認識させるところまでは
> 半分成功していて、途中、依存ライブラリの見つけるところで、エラーになっています。
>
> windowsでビルドするときに、依存するライブラリ(GISInternalskからダウンロードするSDKなど)
> をどのように配置するか、標準的な場所(ディレクトリー)があれば、
> CMakeのレシピに発見できるように修正したいと考えているのですが、
> そのあたりを御教授いただけると幸いです。
>
> 三浦
>
> On 2017年10月13日 14:19, OKI Miyuki wrote:
> > ヒューネス 沖です。
> >
> >
> > GDAL ですが、弊社でもビルドする事がありますが、もっぱら
> > nmake.opt を編集して、必要なライブラリを指定し、
> > nmake -f makefile.vc
> > nmake -f makefile.vc install
> > してました。
> >
> > cmake 対応になったら、
> > cmake -G "Visual Studio 14 2015" -CMAKE_BUILD_TYPE=Release
> > とやれば、Visual Stuido ide 用のプロジェクトファイルが生成されるんで
> > 楽になるかもしれないですね。
> >
> > cmake --help  
> > で、-G "****" の部分の説明も出ます。
> >
> > 自分も、cmake のプロジェクトは、いくらか書いた事が
> > あるので、お手伝いしたいところですが、時間が^^;
> > 何かの機会に、お手伝いできればとは、思ってます。
> >

_______________________________________________
OSGeoJapan-discuss mailing list
[hidden email]
https://lists.osgeo.org/mailman/listinfo/osgeojapan-discuss
Reply | Threaded
Open this post in threaded view
|

Re: GDAL development with IDE by CMake

OKI Miyuki
In reply to this post by Hiroshi Miura(@osmf)
沖です。


cmake で 依存のライブラリを検索するところですが、

WINDOWS_SEARCH_DRIVES ("C" "D")
WINDOWS_SOURCE_DIRS( "\Downloads" "Program Files (x86)" )
とか定義してあげて、正規表現で、ライブラリ名+バージョン番号
のディレクトリをサーチしてあげて、ライブラリ固有のファイルが
そのディレクトリ中の特定の場所に存在するかどうかで
判定するのが、流れかな・・・と思います。

OSGEO4W のプロジェクトでは、
C:\OSGEO4W の直下のみサーチするような
感じでまとめてしまっても良いと思います。

現在は、include , lib がまとめられた場所に
入っている状態なので、
C:\OSGEO4W\SRC
下にダウンロードされたライブラリが存在するという
前提でも、いいとは思います。


_______________________________________________
OSGeoJapan-discuss mailing list
[hidden email]
https://lists.osgeo.org/mailman/listinfo/osgeojapan-discuss
Reply | Threaded
Open this post in threaded view
|

Re: GDAL development with IDE by CMake

OKI Miyuki
沖です。

とりあえず、OSS系のライブラリは、自社でかなり利用していて
今まで、都度ビルドしていましたが、自動化を試みる事にしました。

こちらの方で、ぼちぼちと進めてます。
https://github.com/oki-miyuki/build-oss-library-on-windows

まだ整備中でプルリクエストを受けられる状態ではないですが、
参考にどうぞ。


_______________________________________________
OSGeoJapan-discuss mailing list
[hidden email]
https://lists.osgeo.org/mailman/listinfo/osgeojapan-discuss