GDAL development with IDE by CMake

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
20 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
Reply | Threaded
Open this post in threaded view
|

Re: GDAL development with IDE by CMake

OKI Miyuki
沖です。

C++ Advent Calendar に参加したら、
http://grayhole.blogspot.jp/2017/12/msvcoss.html
Visual Studio 2015 以上だと
vcpkg というツールを使ってライブラリがビルドできるようです。

世界中から続々と構築されてまして、
https://github.com/Microsoft/vcpkg/tree/master/ports
ここの中を見ると、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)
情報ありがとうございます。
以前からVisual studio2015に含まれるVisualC++でライブラリビルドできておりまして、この対応ではありません。

解決したいペインポイントは次の3点です。
1.GDAL開発者にとって、Linux、MacOSX、Android用のMakefileとWindows上のMSVC用のMakefileを2重にメンテナンスをしている

2.GDAL開発者にとって、非常に大規模なソフトウェアにかかわらず、 近代的なlDEによるインクリメンタルなテストやソファクタリングができないため、開発スピードがあがらない

3.IDEに対応しないので新規開発者の参入が難かしい

そこで、VS2017がCMakeにネイティブ対応するので、GDALをターゲットプロジェクトとしてVSでソースコードのIntelliSenseして、開発できるようにしたいのです。

三浦


2017/12/06 午後3:50 "OKI Miyuki" <[hidden email]>:
沖です。

C++ Advent Calendar に参加したら、
http://grayhole.blogspot.jp/2017/12/msvcoss.html
Visual Studio 2015 以上だと
vcpkg というツールを使ってライブラリがビルドできるようです。

世界中から続々と構築されてまして、
https://github.com/Microsoft/vcpkg/tree/master/ports
ここの中を見ると、gdal も含まれています。

て事で、ほぼ解決なんじゃないかと?

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

_______________________________________________
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 OKI Miyuki
OSMFJ三浦です。

2017年12月6日 15:50 OKI Miyuki <[hidden email]>:

> 沖です。
>
> C++ Advent Calendar に参加したら、
> http://grayhole.blogspot.jp/2017/12/msvcoss.html
> Visual Studio 2015 以上だと
> vcpkg というツールを使ってライブラリがビルドできるようです。
>
> 世界中から続々と構築されてまして、
> https://github.com/Microsoft/vcpkg/tree/master/ports
> ここの中を見ると、gdal も含まれています。
>
> て事で、ほぼ解決なんじゃないかと?

少し考えを改めました。GDALのビルドシステムの改善を行っていますが、依存するライブラリを
どのように持って来て、それに対して、どのようにConfigureするか、すこし困っていました。
LinuxのAPTやYUM,  Mac OS XのBrewに相当するものが、Windowsだとなんだろう、
Chocoなのか、NuGetなのか。でも、OSS系のライブラリがないぞ、、、と。

vcpkgというのは、この課題に対する答えになりそうです。
また、GDALのビルドシステムをCMAKEに移行されるようになったら、
このvcpkgへPRして、対応してもらえばいいですね。

これをベースに依存ライブラリをインストールして、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)
 沖さん みなさん

CI/CDで、WIndowsベースといえば、AppVeyorが著名であるとおもいます。
https://github.com/appveyor/ci/issues/1076

vcpkgへの対応が議論されて、進んでいたようです。
12月までに対応がされてきており、ドキュメントにも反映されています。
https://www.appveyor.com/docs/lang/cpp/#vc-packaging-tool

これにより、AppVeyorで、vcpkgが容易につかえて、必要な
ライブラリも容易に導入できるようです。

これで、gdalのビルドシステムの改善という目的にも有効に活用できますし、
一般ユーザとしても、非常に扱いやすいとおもいます。


> 2017年12月6日 15:50 OKI Miyuki <[hidden email]>:
>> 沖です。
>>
>> C++ Advent Calendar に参加したら、
>> http://grayhole.blogspot.jp/2017/12/msvcoss.html
>> Visual Studio 2015 以上だと
>> vcpkg というツールを使ってライブラリがビルドできるようです。
>>
>> 世界中から続々と構築されてまして、
>> https://github.com/Microsoft/vcpkg/tree/master/ports
>> ここの中を見ると、gdal も含まれています。
>>
>> て事で、ほぼ解決なんじゃないかと?
>
> 少し考えを改めました。GDALのビルドシステムの改善を行っていますが、依存するライブラリを
> どのように持って来て、それに対して、どのようにConfigureするか、すこし困っていました。
> LinuxのAPTやYUM,  Mac OS XのBrewに相当するものが、Windowsだとなんだろう、
> Chocoなのか、NuGetなのか。でも、OSS系のライブラリがないぞ、、、と。
>
> vcpkgというのは、この課題に対する答えになりそうです。

有用な情報を提供いただき、ありがとうございます。

OSMFJ 三浦
_______________________________________________
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三浦です。

vcpkgに入っているgdalのコンパイルレシピでは、限定的な依存ライブラリのみが
組み込まれるようになっているようです。
また多くのgdalが依存するライブラリは、まだvcpkgで対応していないようです。

さて、vcpkgにGDALが依存している libspatialiteのportがあったので、
日本語Windows 10で、 vcpkgでビルドしようとしましたが、エラーになりました。

これは、Visual Studio/Visual C++が 日本語環境のWindowsでコンパイルするときに、
libspatialiteにふくまれるutf-8で記述され、ウムラウトの文字がはいっている文字定数を
処理するときに、SJISコードで表現できない文字であるために、異常を起こして、
エラーになるためです。

https://github.com/Microsoft/vcpkg/pull/2659

その修正をvcpkgに投稿したので、報告します。

今後、libspatialiteをふくめ、rasterlite2など色々なライブラリをvcpkgに移植する
必要がありそうで、そしたら、gdalのコンパイル確認がVCPKGによる
パッケージを用いて充分にできるようになるとおもいます。

もし協力できそうな方がありましたら、ぜひ開発してPRを送るなどで
参加してください。

つぎのGDALが依存するライブラリのvcpkgのビルドレシピが
追加で必要だと思います。

rasterlite2,  libgeotiff, sqlite3-pcre, libcharls, libkea, tiff5
libgmp, libnetcdf, libhdf4, libepsilon, libgta
など


>> 2017年12月6日 15:50 OKI Miyuki <[hidden email]>:
>>> 沖です。
>>>
>>> C++ Advent Calendar に参加したら、
>>> http://grayhole.blogspot.jp/2017/12/msvcoss.html
>>> Visual Studio 2015 以上だと
>>> vcpkg というツールを使ってライブラリがビルドできるようです。
>>>
>>> 世界中から続々と構築されてまして、
>>> https://github.com/Microsoft/vcpkg/tree/master/ports
>>> ここの中を見ると、gdal も含まれています。
>>>
>>> て事で、ほぼ解決なんじゃないかと?
>>
>> 少し考えを改めました。GDALのビルドシステムの改善を行っていますが、依存するライブラリを
>> どのように持って来て、それに対して、どのようにConfigureするか、すこし困っていました。
>> LinuxのAPTやYUM,  Mac OS XのBrewに相当するものが、Windowsだとなんだろう、
>> Chocoなのか、NuGetなのか。でも、OSS系のライブラリがないぞ、、、と。
>>
>> vcpkgというのは、この課題に対する答えになりそうです。
>
_______________________________________________
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に関してですが、Geo系は、ISO-8859-X な方々が
主な開発者で、人名やコメント、定数に、しばしば
ウムラウト等の文字が入ってコンパイルエラーになる
ケースが多いようです。

 残念ながら現行の C++規格では、
utf-8 は \uXXXXX といったバイナリ表記を行わなければならず
定数の場合は、そのように修正する必要があります。
これは、主に Test Unit のコードで見かけました。

 コメントの場合は、違う文字で置き換えてもらう
必要があります。一見普通の O に見える文字が
依存文字だったりとか、バイナリエディタで確認する
など、結構手強いです。

 ちょくちょく見かけます。

 この場合は、そのプロジェクトの Trac や github に
対して Issue を立てて、pull request を送るなど、
修正を取り込んでもらうのが王道です。

 私は、bug 修正の Issue を立てた事があるのですが、
簡単なバグ修正も取り込んでもらえなくて、心折れました。
根気強く、交渉する心も必要そうです。

 Developer ML も、コードを投稿したら注意されました。
コードを投稿して注意される Developer ML は、
自分の感覚だとビックリです。

 それでも、Issue は立てるようにしてます。

_______________________________________________
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)
沖です

三浦さん、こんにちわ。
(リプライ先、間違えました。すみません)

OSSに関してですが、Geo系は、ISO-8859-X な方々が
主な開発者で、人名やコメント、定数に、しばしば
ウムラウト等の文字が入ってコンパイルエラーになる
ケースが多いようです。

 残念ながら現行の C++規格では、
utf-8 は \uXXXXX といったバイナリ表記を行わなければならず
定数の場合は、そのように修正する必要があります。
これは、主に Test Unit のコードで見かけました。

 コメントの場合は、違う文字で置き換えてもらう
必要があります。一見普通の O に見える文字が
依存文字だったりとか、バイナリエディタで確認する
など、結構手強いです。

 ちょくちょく見かけます。

 この場合は、そのプロジェクトの Trac や github に
対して Issue を立てて、pull request を送るなど、
修正を取り込んでもらうのが王道です。

 私は、bug 修正の Issue を立てた事があるのですが、
簡単なバグ修正も取り込んでもらえなくて、心折れました。
根気強く、交渉する心も必要そうです。

 Developer ML も、コードを投稿したら注意されました。
コードを投稿して注意される Developer ML は、
自分の感覚だとビックリです。

 それでも、Issue は立てるようにしてます。

_______________________________________________
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)
 沖さん
OSGEOなみなさん

2018年1月29日 15:13 OKI Miyuki <[hidden email]>:
> 沖です
>
> 三浦さん、こんにちわ。
> (リプライ先、間違えました。すみません)

こういうことは、コミュニティの皆様でナレッジとして
共有されたほうが、より価値がありますね。

>
> OSSに関してですが、Geo系は、ISO-8859-X な方々が
> 主な開発者で、人名やコメント、定数に、しばしば
> ウムラウト等の文字が入ってコンパイルエラーになる
> ケースが多いようです。

ISO-8859-X な方々が主な開発者なのは、 Geo 系に限った話ではありません。
しかしながら、このコンパイルエラーですが、 Windows でしか発生しません。

Mac OSX や Linux や21世紀のOSでは、完全に UTF-8/Unicode  による処理に移行しており、
国際化されており、これらの文字に問題がおこることがありません。

一方、 Wndows  では、遥か昔、30年前の1980年代にMSKKやNECが採用した
SHIFTーJIS規格を温存して日本語環境における標準的コードページを65001ではなく、
932とするという判断を行っているために、このような問題が発生しています。

と、いう事情を勘案すると、そんな前世紀の問題を未だに日本は、引きずっているのか、と
むしろ驚きをもって受け止められるでしょう。

>  残念ながら現行の C++規格では、
> utf-8 は \uXXXXX といったバイナリ表記を行わなければならず
> 定数の場合は、そのように修正する必要があります。
> これは、主に Test Unit のコードで見かけました。

これは、日本語Windowsの問題であり、何らかの理由で不幸にもWindowsで
コンパイルを行わなければならない方は、日本語Windows

>
>  コメントの場合は、違う文字で置き換えてもらう
> 必要があります。一見普通の O に見える文字が
> 依存文字だったりとか、バイナリエディタで確認する
> など、結構手強いです。
>
>  ちょくちょく見かけます。
>
>  この場合は、そのプロジェクトの Trac や github に
> 対して Issue を立てて、pull request を送るなど、
> 修正を取り込んでもらうのが王道です。
>
>  私は、bug 修正の Issue を立てた事があるのですが、
> 簡単なバグ修正も取り込んでもらえなくて、心折れました。
> 根気強く、交渉する心も必要そうです。
>
>  Developer ML も、コードを投稿したら注意されました。
> コードを投稿して注意される Developer ML は、
> 自分の感覚だとビックリです。
>
>  それでも、Issue は立てるようにしてます。
>
> _______________________________________________
> OSGeoJapan-discuss mailing list
> [hidden email]
> https://lists.osgeo.org/mailman/listinfo/osgeojapan-discuss
_______________________________________________
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
三浦さん、みなさん
こんにちわ

沖です。

ここだけちょっと
> >  残念ながら現行の C++規格では、
> > utf-8 は \uXXXXX といったバイナリ表記を行わなければならず
> > 定数の場合は、そのように修正する必要があります。
> > これは、主に Test Unit のコードで見かけました。
>
> これは、日本語Windowsの問題であり、何らかの理由で不幸にもWindowsで
> コンパイルを行わなければならない方は、日本語Windows

一応 C++ の言語規格上の決まりになりますので、
コンパイルエラーにならないのは、たまたまなのです。
日本語Windowsの問題ではありません。

Test Unit の中には、UTF-8 以外の文字コードが出現する
事もあったように思います(記憶違いかもしれないけど)。
その場合は、文字列リテラルをバイナリ表現で書くべき
なんです。それと同等のレベルだと思います。

 Windows 以外は、 UTF-8 で環境が標準で、
Windows だけ各国のコードで動いてます。

私の観測範囲内では、ロシアの方(だったと思う)も
コンパイルエラーに遭遇して Issue を上げておられましたし、
方向としては、ちゃんと C++の規格に沿ってコードを
書くべきものだと思います。

PostgreSQL では、ソースコード中に typename 等の予約語が
使用されてて難儀した事もあります。

規格に沿ってコードを書くことは、多様な環境で動作させるための
最低限のラインだと思います。


_______________________________________________
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 Hiroshi Miura(@osmf)
osmfj三浦です。

2018年1月27日 13:09 Miura Hiroshi <[hidden email]>:

> さて、vcpkgにGDALが依存している libspatialiteのportがあったので、
> 日本語Windows 10で、 vcpkgでビルドしようとしましたが、エラーになりました。
>
> これは、Visual Studio/Visual C++が 日本語環境のWindowsでコンパイルするときに、
> libspatialiteにふくまれるutf-8で記述され、ウムラウトの文字がはいっている文字定数を
> 処理するときに、SJISコードで表現できない文字であるために、異常を起こして、
> エラーになるためです。
>
> https://github.com/Microsoft/vcpkg/pull/2659
>
> その修正をvcpkgに投稿したので、報告します。

沖さんからも指摘のあるC++11 標準に従った変更を加えた修正について、
vcpkgプロジェクトに承認されて、取り込まれましたので、共有します。

引き続きで、
KEAlib のvcpkg対応を行っています。

https://github.com/Microsoft/vcpkg/pull/2708

また、その延長で、kealibのビルドスクリプトの改善提案を行っています。
この改善をいれることで、vcpkgで利用できるようになるため、
提案した内容は、vcpkgのスクリプトでパッチとして取り入れています。

https://bitbucket.org/chchrsc/kealib/pull-requests/5/improve-cmake-files/diff

以上
_______________________________________________
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)
沖です。

三浦さん、みなさん、こんにちわ。

BOM問題も煩わしいですよね。
何にせよ、\uXXXX は、いけてないので、
u8"HOGE"
が標準で浸透するようになるといいのですけど…。
めんどくさいですよね。

Windows が utf-8 をサポートしてれば
ほんと、何の問題もないんですよね…

 お手伝いできれば、いいのですけど、あんまり
手伝えてなくて、恐縮です^^;


> > 三浦です。
>
>
> >では、Windowsで動作するMSVCではどうか、というと、MSVCの仕様により
> >UTF-8の文字コードでありUnicode文字セットの文字がソースファイルに
> >含まれるとMSVC(cl.exe)が判断するのに、BOM付きのUTF-8で保存された
> >ファイルに限られる、ということになっています。
>
> ここについては、一部 私の間違いでした。 Windowsで動作するMSVCについて、
> 英語(CP432)の環境では、文字コードはUTF-8だとして動作するという仕様だそうです。
>
> しかし、英語以外では、その環境におけるレガシーな文字コード(MBCS)だと解釈する
> 仕様ということのようです。たとえ、u8"日本語″と、UTFー8形式で保存したとしても
> そのバイト列をSJISとして解釈して、UTFー8に変換するという変な挙動をするために
> エラーになるみたいです。
>
> それでもなお、先の投稿にありますように、コントロールパネルから英語として解釈するように
> 設定すればUTFー8だと正しく認識されるようです。そのため、BOMつきのUTFー8か、
> 英語のWindows(またはそのように設定されたWindows)のMSVCならば、コンパイルエラーに
> ならない、というのが正しいようです。
>
> https://stackoverflow.com/questions/33583263/msvc14-treats-the-u8-prefix-differently-depending-on-whether-the-source-is-utf-8
>
> もちろん沖さんが御指摘のように、\uXXXX形式で記述すれば、どうように問題ないです。
>
> PS
> たとえば、このライブラリにあるように、地点と地名をソースコードに埋め込んでいますが、
> 日本の地名を入れようとしたら、あらゆる この形式に漢字、かなを変える必要があります。
> これ、開発者は、日本語Windowsはサポートない、っていいたくなると思いますが、日本人でも。
>
> 三浦


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