-
Notifications
You must be signed in to change notification settings - Fork 393
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
Cmake modernize #8425
Cmake modernize #8425
Conversation
* Reduce global settings
* uses project_warnings and project_options interface projects * now we no longer force our warning flags on third_party projects
* found by enabling more warnings on clang * previous code was invoking undefined behavior by deleting an object via a pointer to its base class with a non-virtual destructor * Could have caused memory leaks (or worse)
This reverts commit b059d34.
@lefticus so something is happening on this PR. We noticed Windows CI was struggling a couple times and eventually deduced that this branch was just eating days of the CI time. Just on Windows. You can see the results from that last commit and how the test time was about 220843 seconds. I'm not sure what changed on the build on Windows, but something definitely went awry. For reference, the bigobj change already dropped into develop this morning and hasn't caused any issues with CI, so it's not that. |
I just did a review of the code, building both Release and Debug locally,
unable to reproduce any issues. I know earlier versions of this completed
in a reasonable time on Windows, maybe it was a fluke?
I just did a merge of develop and a new push to CI. Hopefully it won't take
things down again. I'll keep investigating.
…-Jason
On Tue, Dec 29, 2020 at 12:43 PM Edwin Lee ***@***.***> wrote:
@lefticus <https://github.com/lefticus> so something is happening on this
PR. We noticed Windows CI was struggling a couple times and eventually
deduced that this branch was just eating days of the CI time. Just on
Windows. You can see the results
<https://nrel.github.io/EnergyPlusBuildResults/EnergyPlus-fde2e6503d8059499dcca76068b6d57e6131bae3-Win64-Windows-10-VisualStudio-16.html>
from that last commit and how the test time was about 220843 seconds. I'm
not sure what changed on the build on Windows, but something definitely
went awry.
For reference, the bigobj change already dropped into develop this morning
and hasn't caused any issues with CI, so it's not that.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
<#8425 (comment)>, or
unsubscribe
<https://github.com/notifications/unsubscribe-auth/AABZGJ56XRAD2G6NHD34MM3SXIWPBANCNFSM4U4P674A>
.
--
C++ Trainer, Developer and Speaker
Check out my training options: https://emptycrate.com/training.html
Subscribe to learn about new training events:
https://www.subscribepage.com/emptycrate
|
Ah, thank you, that gives me a good clue. Not sure how far I can get with
that before the end of this year/contract. (Of course It Works For Me)
…On Wed, Dec 30, 2020 at 2:32 PM Edwin Lee ***@***.***> wrote:
It seems to be happening again. I logged into the CI box and found these
error messages popping up. Again, only on this branch.
[image: Screen Shot 2020-12-30 at 9 11 02 AM]
<https://user-images.githubusercontent.com/849824/103382305-2fb6a600-4ab4-11eb-8059-061157f37489.png>
[image: Screen Shot 2020-12-30 at 9 10 45 AM]
<https://user-images.githubusercontent.com/849824/103382309-33e2c380-4ab4-11eb-9d0c-897297fda878.png>
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
<#8425 (comment)>, or
unsubscribe
<https://github.com/notifications/unsubscribe-auth/AABZGJ7BU2M52ZCVIFGJNSDSXOL77ANCNFSM4U4P674A>
.
--
C++ Trainer, Developer and Speaker
Check out my training options: https://emptycrate.com/training.html
Subscribe to learn about new training events:
https://www.subscribepage.com/emptycrate
|
This reverts commit 30b8df1.
@lefticus OK, that reversion definitely took care of the runtime issue. With the last build everything reported back in expected fashion. There were a few build warnings on the last build though:
It would be good to get some more feedback from others if they are interested. |
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.
I still need to look a little further, but overall, this is such a nice standardization of our cmake rules. And we have so, so many.
add_simulation_test(IDF_FILE CoolingTower_VariableSpeed_CondEntTempReset.idf EPW_FILE USA_IL_Chicago-OHare.Intl.AP.725300_TMY3.epw) | ||
add_simulation_test(IDF_FILE CoolingTower_VariableSpeed_CondEntTempReset_MultipleTowers.idf EPW_FILE USA_IL_Chicago-OHare.Intl.AP.725300_TMY3.epw) | ||
add_simulation_test(IDF_FILE CoolingTower_VariableSpeed_IdealCondEntTempSetpoint.idf EPW_FILE USA_IL_Chicago-OHare.Intl.AP.725300_TMY3.epw) | ||
add_simulation_test(IDF_FILE CoolingTower_VariableSpeed_IdealCondEntTempSetpoint_MultipleTowers.idf EPW_FILE |
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.
Any change to this file may require some polishing in a couple places:
- The regression tool may still look to this file for matching EPWs with IDFs. I actually can't recall at this very moment.
- There is a custom_check script that verifies all IDFs found in the testfiles directory are listed in this file. I think it does a simple line-by-line match, so line breaking will cause potential false positive/negatives and what-not.
@@ -0,0 +1,229 @@ | |||
_help_parse: Options affecting listfile parsing |
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.
Standardized format. Nice. I wonder what all editors respect this file.
endif() | ||
target_include_directories(project_options INTERFACE ${PROJECT_SOURCE_DIR}/third_party/kiva-ep/src) | ||
target_include_directories(project_options INTERFACE "${kiva_BINARY_DIR}/src/libkiva") | ||
target_include_directories(project_options SYSTEM INTERFACE "${kiva_SOURCE_DIR}/vendor/boost-1.61.0/") |
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.
Did these have to get pulled from the third_party directory rules?
# ADD_CXX_DEFINITIONS("-d2SSAOptimizer-") # this disables this optimizer which has known major issues | ||
|
||
# ADDITIONAL RELEASE-MODE-SPECIFIC FLAGS | ||
target_compile_options(project_options INTERFACE $<$<CONFIG:Release>:/GS->) # Disable buffer overrun checks for performance in release mode |
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.
Nice.
@Myoldmopar this line of code, by using This is almost certainly not the intention. It can be fixed by moving to |
Yay! Custom check is all clean. I know you still need to pull develop in, merge any conflicts, and mark it ready to review, so I'll be ready to review and merge once it's all good to go. Thanks @lefticus ! |
All green here! Thanks @lefticus |
Pull request overview
Modernize CMake
target_
directives over global settingscmake-format is a pip package, easily installable on all platforms.