[WIP] CMake build with Visual Studio support#289
Closed
rkanavath wants to merge 265 commits intoOSGeo:mainfrom
Closed
[WIP] CMake build with Visual Studio support#289rkanavath wants to merge 265 commits intoOSGeo:mainfrom
rkanavath wants to merge 265 commits intoOSGeo:mainfrom
Conversation
This reverts commit 27040edaa6b4a96632c5dc631e5dffda3140c8e5.
rkanavath
added a commit
to rkanavath/grass
that referenced
this pull request
Feb 17, 2020
This is not a search and replace of __MING32__ with _WIN32. There are places where __MINGW32__ is still used and all changes are tested with MSVC 2019 compiler. Although, this commit alone will not work on MSVC because there are plenty of other things to be done which are seperated into multiple PR. PR OSGeo#289 is the one that "works" on MSVC and unix as well. But that contains too many changes which shouldn't in a single PR. Even though this PR alone won't compile GRASS GIS on MSVC, it sure will not break existing compilers which I think is very important. Complete support for MSVC will be ready after 2/3 PRs OSGeo#289
rkanavath
added a commit
to rkanavath/grass
that referenced
this pull request
Feb 17, 2020
This is not a search and replace of __MING32__ with _WIN32. There are places where __MINGW32__ is still used and all changes are tested with MSVC 2019 compiler. Although, this commit alone will not work on MSVC because there are plenty of other things to be done which are seperated into multiple PR. PR OSGeo#289 is the one that "works" on MSVC and unix as well. But that contains too many changes which shouldn't in a single PR. Even though this PR alone won't compile GRASS GIS on MSVC, it sure will not break existing compilers which I think is very important. Complete support for MSVC will be ready after 2/3 PRs OSGeo#289
Closed
rkanavath
added a commit
to rkanavath/grass
that referenced
this pull request
Feb 17, 2020
This is not a search and replace of __MING32__ with _WIN32. There are places where __MINGW32__ is still used and all changes are tested with MSVC 2019 compiler. Although, this commit alone will not work on MSVC because there are plenty of other things to be done which are seperated into multiple PR. PR OSGeo#289 is the one that "works" on MSVC and unix as well. But that contains too many changes which shouldn't in a single PR. Even though this PR alone won't compile GRASS GIS on MSVC, it sure will not break existing compilers which I think is very important. Complete support for MSVC will be ready after 2/3 PRs OSGeo#289
Member
|
FYI: I have locally rebased this PR and will first separate out the |
Member
See #2681 |
Contributor
Note that latest work on CMake is in #348. |
Member
|
Yes, I'm aware of it. I rebased this PR locally to extract the C related changes into a new PR. |
Member
|
I have rebased this PR to |
neteler
added a commit
that referenced
this pull request
Jan 16, 2023
* cmake support preparation: use of INFINITY and NAN - use of `INFINITY` rather than only division by zero (this is supported by gcc and other compilers but not on Windows) - use of `NAN` rather than only division by zero Extracted from WIP PR #289 Further changes on top: - fix indentation - revert void* arithmetic change - remove superfluous comments - use 0 (zero) to init integers - 0/0 = NAN, 1/0 = INFINITY - Include math.h for Windows - Use c++ include - r.series: add INFINITY - apply clang-format to match reformatting in `main` by using `for i in $(gh pr view 2681 --json files --jq '.files.[].path') ; do clang-format -i $i ; done` Co-authored-by: @rkanavath Co-authored-by: @nilason
ninsbl
pushed a commit
to ninsbl/grass
that referenced
this pull request
Feb 17, 2023
* cmake support preparation: use of INFINITY and NAN - use of `INFINITY` rather than only division by zero (this is supported by gcc and other compilers but not on Windows) - use of `NAN` rather than only division by zero Extracted from WIP PR OSGeo#289 Further changes on top: - fix indentation - revert void* arithmetic change - remove superfluous comments - use 0 (zero) to init integers - 0/0 = NAN, 1/0 = INFINITY - Include math.h for Windows - Use c++ include - r.series: add INFINITY - apply clang-format to match reformatting in `main` by using `for i in $(gh pr view 2681 --json files --jq '.files.[].path') ; do clang-format -i $i ; done` Co-authored-by: @rkanavath Co-authored-by: @nilason
neteler
added a commit
to nilason/grass
that referenced
this pull request
Nov 7, 2023
* cmake support preparation: use of INFINITY and NAN - use of `INFINITY` rather than only division by zero (this is supported by gcc and other compilers but not on Windows) - use of `NAN` rather than only division by zero Extracted from WIP PR OSGeo#289 Further changes on top: - fix indentation - revert void* arithmetic change - remove superfluous comments - use 0 (zero) to init integers - 0/0 = NAN, 1/0 = INFINITY - Include math.h for Windows - Use c++ include - r.series: add INFINITY - apply clang-format to match reformatting in `main` by using `for i in $(gh pr view 2681 --json files --jq '.files.[].path') ; do clang-format -i $i ; done` Co-authored-by: @rkanavath Co-authored-by: @nilason
Merged
HuidaeCho
added a commit
that referenced
this pull request
Feb 22, 2025
Based on original work by Rashad Kanavath in 2020 with pull request: #289 This update introduces preliminary support for building and installing GRASS GIS using CMake across multiple platforms, including Windows with MSVS, Linux, and macOS. The installation can be performed using either the traditional GRASS file structure or a structure that complies with the Filesystem Hierarchy Standard (FHS). Co-authored-by: Rashad Kanavath <[email protected]> Co-authored-by: Markus Neteler <[email protected]> Co-authored-by: Loïc Bartoletti <[email protected]> Co-authored-by: Aaron Saw <[email protected]> Co-authored-by: Nicklas Larsson <[email protected]> Co-authored-by: Huidae Cho <[email protected]> Co-authored-by: Mahesh Maddineni <[email protected]> Co-authored-by: Kandel Nelson <[email protected]> Co-authored-by: Edouard Choinière <[email protected]>
echoix
pushed a commit
to echoix/grass
that referenced
this pull request
Apr 7, 2025
This is not a search and replace of __MING32__ with _WIN32. There are places where __MINGW32__ is still used and all changes are tested with MSVC 2019 compiler. Although, this commit alone will not work on MSVC because there are plenty of other things to be done which are seperated into multiple PR. PR #289 is the one that "works" on MSVC and unix as well. But that contains too many changes which shouldn't in a single PR. Even though this PR alone won't compile GRASS GIS on MSVC, it sure will not break existing compilers which I think is very important. Complete support for MSVC will be ready after 2/3 PRs OSGeo#289
echoix
added a commit
to echoix/grass
that referenced
this pull request
Apr 7, 2025
This is not a search and replace of __MING32__ with _WIN32. There are places where __MINGW32__ is still used and all changes are tested with MSVC 2019 compiler. Although, this commit alone will not work on MSVC because there are plenty of other things to be done which are seperated into multiple PR. PR #289 is the one that "works" on MSVC and unix as well. But that contains too many changes which shouldn't in a single PR. Even though this PR alone won't compile GRASS GIS on MSVC, it sure will not break existing compilers which I think is very important. Complete support for MSVC will be ready after 2/3 PRs OSGeo#289
echoix
added a commit
to echoix/grass
that referenced
this pull request
Apr 7, 2025
This is not a search and replace of __MING32__ with _WIN32. There are places where __MINGW32__ is still used and all changes are tested with MSVC 2019 compiler. Although, this commit alone will not work on MSVC because there are plenty of other things to be done which are seperated into multiple PR. PR #289 is the one that "works" on MSVC and unix as well. But that contains too many changes which shouldn't in a single PR. Even though this PR alone won't compile GRASS GIS on MSVC, it sure will not break existing compilers which I think is very important. Complete support for MSVC will be ready after 2/3 PRs OSGeo#289 Co-authored-by: Rashad Kanavath <[email protected]>
echoix
added a commit
to echoix/grass
that referenced
this pull request
Apr 7, 2025
This is not a search and replace of __MING32__ with _WIN32. There are places where __MINGW32__ is still used and all changes are tested with MSVC 2019 compiler. Although, this commit alone will not work on MSVC because there are plenty of other things to be done which are seperated into multiple PR. PR #289 is the one that "works" on MSVC and unix as well. But that contains too many changes which shouldn't in a single PR. Even though this PR alone won't compile GRASS GIS on MSVC, it sure will not break existing compilers which I think is very important. Complete support for MSVC will be ready after 2/3 PRs OSGeo#289 Co-authored-by: Rashad Kanavath <[email protected]>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Hello all,
This is a very BIG pr! that adds cmake support for GRASS GIS!.
I have been working on and off mostly for fun!. Initial work started on grass-ci fork and then I recently rebased changes against proper upstream.
This new CMake support comes with Visual Studio support (adding a bunch of ifdef, declspec etc..). This PR allows windows users to use native C compiler and not MINGW. PR itself does not add anything to break MINGW support.
There are still some missing bits required in cmake build such as man pages, locale, make install target.
Current code can build all grass that can be run from build directory. I had tagged with "WIP".
Reviews and feedback are welcome,