-
Notifications
You must be signed in to change notification settings - Fork 116
Migrated build process from Makefiles to CMake #5
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
Hello, ambasta. |
Hi @tbbdev Any updates on the PR? |
Hi @ambasta, We are interested in developing CMake infrastructure for Parallel STL and appreciate your efforts, but unfortunately cannot accept the PR as is. There are several reasons for this, for example:
Our primary CMake goal is providing the simple integration of Parallel STL into client CMake projects. |
Noted, I'll update the PR will recommended changes! |
I've addressed most (all?) of the review points and have made a PR to the fork ambasta/parallelstl#1 ; if @ambasta accepts it, that will keep everything contained in this PR. (Otherwise, I can make a new PR). |
Cleanup for CMake
@henryiii, @ambasta, thank you for your efforts! There are detailed comments about some things that have already been mentioned above: We're working on integration of Parallel STL into standard C++ libraries libc++ and libstdc++. About examples: we would prefer to have examples as separate projects with an external dependency on Parallel STL to demonstrate the integration. Let's work on it out of this PR. About tests: we would prefer to have the test part which doesn’t require regular support, i.e. without hardcoded test names. Let's work on it out of this PR too. Summary: we are ready to integrate the core part and continue to work on test and examples, but installation and packaging parts are not in long term strategy for Parallel STL. If you agree we will merge the PR internally and it will be available in some new version. Thank you. |
That sounds like a reasonable path forward. +1 |
I've been following the proposals to add pstl to libstdc++/libcxx. Does this mean the merged PSTL won't depend on tbb as per the proposed spec? |
@ambasta, we expect Parallel STL to be extended with more parallel backends over time, and programmers will be able to choose which one to use. |
@ambasta I expect that I will be adding a couple of backend options over the next few months as I move toward a final version to ship as part of libstdc++, but we will still support TBB as a backend option in GCC9. @akukanov I've revisited this pull request for reference. A few notable points -
|
@rodgert, we are fully open to reorganize and expand the build and test systems in the way that it works for libc++ and libstdc++. We will have to figure out how much of it will still work via makefiles. The problem of negative tests might possibly be addressed with some test launcher script. |
@akukanov Agreed I'm not going to turn this into a formal pull req until we finalize the other reorganization work, but I will be committing my changes on https://github.com/rodgert/parallelstl/tree/stdlib-test-reorg and I'd appreciate any feedback you might have on how best to address the existing makefiles with this set of changes |
Updates in comparison with PR #5: - Applied changes according to comment: #5 (comment) - Re-worked logic of PARALLELSTL_USE_PARALLEL_POLICIES and PARALLELSTL_BACKEND interaction. - Used more precise dependency on TBB. - Added Apache 2.0 copyright notices.
@@ -0,0 +1,94 @@ | |||
cmake_minimum_required(VERSION 3.1) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Why "VERSION 3.1" is a minimal requirement?
Are any features not available in earlier versions?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
CMake selects behaviors based on the minimum version; the wrong behavior will be selected if this is too low. CMake is on version 3.11 now, so this is a very old (5 year old) version. You should never have an older version of CMake than your compiler. And it's trivial to install. See https://cliutils.gitlab.io/modern-cmake/.
And, yes, C++11 support (CMAKE_CXX_STANDARD
) was introduced in CMake 3.1. Interface targets had lots of fixes, too.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@henryiii , thank you for explanation
Updates in comparison with PR #5: - Applied changes according to comment: #5 (comment) - Re-worked logic of PARALLELSTL_USE_PARALLEL_POLICIES and PARALLELSTL_BACKEND interaction. - Used more precise dependency on TBB. - Added Apache 2.0 copyright notices.
PR #10 based on this PR has been merged into master and included into Parallel STL 20180619 release (see CHANGES). @ambasta, do you agree to close this PR? |
…__any_of_group for __parallel_find_any #5 Signed-off-by: Sergey Kopienko <sergey.kopienko@intel.com>
…__any_of_group for __parallel_find_any #5 Signed-off-by: Sergey Kopienko <sergey.kopienko@intel.com>
…__any_of_group for __parallel_find_any #5 Signed-off-by: Sergey Kopienko <sergey.kopienko@intel.com>
…__any_of_group for __parallel_find_any #5.1 Signed-off-by: Sergey Kopienko <sergey.kopienko@intel.com>
…__any_of_group for __parallel_find_any #5 Signed-off-by: Sergey Kopienko <sergey.kopienko@intel.com>
Hi,
I've migrated current build process from raw Makefiles to CMake instead. This allows for easier configurable releases and the standard configure/make/make install process across platforms for easier packaging across linux distributions and otherwise.
Additionally, it also exports projectConfig.cmake files for other projects to detect pstl and specify it as a dependency!