-
Notifications
You must be signed in to change notification settings - Fork 764
Modernize CMake code #734
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
Modernize CMake code #734
Conversation
| include(CMakeDependentOption) | ||
| cmake_dependent_option(ENABLE_WERROR "Enable -Werror flag" ON "CMAKE_SYSTEM_NAME MATCHES LINUX" OFF) | ||
| if (ENABLE_WERROR) | ||
| message(STATUS "Enabling -Werror flag") | ||
| add_compile_options(-Werror) | ||
| endif() |
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 did you separated this flag from the others related to LINUX?
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.
The -Werror blocks my linux builds :) Honestly I don't think any component should ever include this. -Werror should be up to the toolchain - as the toolchain usually specifies which compile options to use, which warnings to watch for, and whether warnings should be allowed.
|
I am still working on this PR, I'll likely rebase to Fabio's 3.5.x branch. Stuff just takes time. :) |
In that case maybe i will check this PR later! great job anyway, it has interesting improvements |
46c5cac to
da94c06
Compare
|
@kheaactua tried to build this new CMake code and got a failure. I have ubuntu 22.04, gcc version 11.4 the error i got was the following: |
|
@duartenfonseca I'll take a look! Was this on Fabio's 3.5.x? He did push a change to the network tests a few days back. I'll also fix that conflict that appeared. |
|
@kheaactua i just did a checkout to your branch and tried to build! |
|
@kheaactua is the increase of minimum version on cmake is really necessary? from our side, we would like to avoid that |
I raised it to 3.15 to accommodate Conan 2.0. From the author:
Though not yet posted, I've been prepping covesa/capi-conan, covesa/capi-docker, and some others that all use Conan to set up CommonAPI environments. Curious though, what would be desirable about staying at 3.13? With 3.23 vsomeip could use file sets for a cleaner install of the includes Locally I jack it up to 3.30 :) |
da94c06 to
b45251e
Compare
b45251e to
0c2f5f9
Compare
I understand your reasons, but if we could find a way to keep the CMake changes without increasing from 3.13 would be best. From our internal process, increasing this there would need to be a strong justification for this change. |
I could make Conan apply a patch, that would solve the issue with Conan. I'll give it a try with 3.13 as soon as I can. I may have to remove some of the generator expressions to support 3.13 as well. Also, for me the Docker setup for the network tests fails with CMake 3.22 and below. That said, I would strongly encourage the update.
Just a tonne of updates that help both with QNX and really just in general. |
e2c4cdc to
9c53ff7
Compare
d56e11e to
38c935a
Compare
2638cb5 to
74bc25d
Compare
Suggested by Duarte, a better fix is likely to be posted upstream.
Adjusting minimum CMake version
Restoring install destination for vsomeip_ctrl
Fixed pkg-config CMake flag
Removing leading -D on add_compile_definitions for backwards compatiblity pre CMake 3.26
…ents - cmake v2→v3
Removed hardcoded `_QNX_SOURCE` define in build. This should be provided by the toolchain via the choice of C++ standard. Specifically, extensions should be enabled (e.g. using `-std=gnu++17`) See https://www.qnx.com/developers/docs/7.1/index.html#com.qnx.doc.neutrino.utilities/topic/q/qcc.html
…mprovements - cmake v2→v3
…Lists improvements - cmake v2→v3
…al CMakeLists improvements - cmake v2→v3 Removing RT_INTERFACE and librt
…p! General CMakeLists improvements - cmake v2→v3 Removed the long lines of ####
…up! fixup! General CMakeLists improvements - cmake v2→v3 Reverting to variable variable names
…up! fixup! fixup! General CMakeLists improvements - cmake v2→v3
…up! fixup! fixup! fixup! General CMakeLists improvements - cmake v2→v3
…up! fixup! fixup! fixup! fixup! General CMakeLists improvements - cmake v2→v3 Typo
…gment_length_. changed the variable on hpp to constexpr.
9815f52 to
b357543
Compare
Changes: Add .git-blame-ignore-revs misc: format codebase Revert cmake refactor udp_server_endpoint_impl refactoring clear multicast only for last subscriber Ensure that a broken connection is forwarded to the app Fix connection drop routing to server fixing changes from cmakelists update Change order of local endpoint clean-up Fix increase in exported symbols Update security offer rule for messages plugin: remove load_plugins endpoints: fix use of bound client Code Quality: Address shadowing (#840) check routing ready on options_condition predicate Adapt new netlink test code to current boost.asio API emi: assign name to multicast worker thread Adapt new code to current boost.asio API Updates vsomeip config doc NetLink changes fix offer_stop_offer_test Testing local tcp communication with fault injection Rename IPV3 to IPV4 rmi: improve logging Ensure client process only once the registration Always send initial event on subscription Modernize CMake code (#734) rmc: drop use of netlink set TCP_USER_TIMEOUT on boardnet connections Use current boost.asio API vsomeip examples on Windows not running Fix vsomeip unit-tests failing on Windows Adding missing flag lse: fix missing timeout handling Disconnect on error Set was_not_connected to true if not connected Client specific debouncing by name Add predicate to condition variables Ensure to unsubscribe non selective events Handle not_socket error on send_cbk Remove the exponential timer increase from connection add logs to register subscription handlers tse: minor logging improvement Ensure tracing is done after the actual action Add stdint import for GCC 15 (#890) rm: fix client registration thread names make client id show as hex value replace with remove_known_client allow to set any service/instance on supress missing events rms: fix SIGSEGV on application register misc: remove ERROR_INFO Add extra documentation for routing info command Test for registration process network test for availability handler fix test false positives Valgrind memcheck corrections Enable valgrinds and helgrind removal set TCP_USER_TIMEOUT on local connections Removes access member sec rule from received responses
Changes: Add .git-blame-ignore-revs misc: format codebase Revert cmake refactor udp_server_endpoint_impl refactoring clear multicast only for last subscriber Ensure that a broken connection is forwarded to the app Fix connection drop routing to server fixing changes from cmakelists update Change order of local endpoint clean-up Fix increase in exported symbols Update security offer rule for messages plugin: remove load_plugins endpoints: fix use of bound client Code Quality: Address shadowing (#840) check routing ready on options_condition predicate Adapt new netlink test code to current boost.asio API emi: assign name to multicast worker thread Adapt new code to current boost.asio API Updates vsomeip config doc NetLink changes fix offer_stop_offer_test Testing local tcp communication with fault injection Rename IPV3 to IPV4 rmi: improve logging Ensure client process only once the registration Always send initial event on subscription Modernize CMake code (#734) rmc: drop use of netlink set TCP_USER_TIMEOUT on boardnet connections Use current boost.asio API vsomeip examples on Windows not running Fix vsomeip unit-tests failing on Windows Adding missing flag lse: fix missing timeout handling Disconnect on error Set was_not_connected to true if not connected Client specific debouncing by name Add predicate to condition variables Ensure to unsubscribe non selective events Handle not_socket error on send_cbk Remove the exponential timer increase from connection add logs to register subscription handlers tse: minor logging improvement Ensure tracing is done after the actual action Add stdint import for GCC 15 (#890) rm: fix client registration thread names make client id show as hex value replace with remove_known_client allow to set any service/instance on supress missing events rms: fix SIGSEGV on application register misc: remove ERROR_INFO Add extra documentation for routing info command Test for registration process network test for availability handler fix test false positives Valgrind memcheck corrections Enable valgrinds and helgrind removal set TCP_USER_TIMEOUT on local connections Removes access member sec rule from received responses
Description
General CMakeLists improvements - cmake v2→v3
.cmake-formatfile, and ran applied it to the mainCMakeListfiles in this project.ifandforeachblocks, but I believe overall it does a better job that the default settings. The main benefit is a consistent formatinternal.hppto build directory instead of source to prevent needless rebuildsCMAKE_VERBOSE_MAKEFILE, this should be injected by the user if so desired--wrapoption) the "socket" symbol, seewrappers.cppvsomeip/example/hello_worldandvsomeip_ctrlENABLE_SIGNALS, but its setting was missing in CMakebacktrace.hfileVSOMEIP_BASE_PATH. Upstream defaults this to/varfor QNX which is a very bad choice.Misc