rust-lang / cmake-rs

Rust build dependency for running cmake
https://docs.rs/cmake
Apache License 2.0
301 stars 121 forks source link

Allow not forcibly setting CMAKE_C_FLAGS and CMAKE_CXX_FLAGS #198

Open anderslanglands opened 9 months ago

anderslanglands commented 9 months ago

I hit the same issue as https://github.com/rust-lang/cmake-rs/issues/133

The reason is that even if no cflags or cxxflags are specified in the Config, it will still forcibly set those in the cfg, even if no_default_flags is forced to true (in that case CMAKE_C(XX)_FLAGS is just set to empty).

This causes some libraries to fail to build on windows because of the missing /EHsc flag that CMake sets by default, but is apparently not in the list that Config pulls from cc.

I would expect that if I don't supply any flags to Config, then I should get the exact same result as calling cmake in the terminal, which is not what happens currently. Is there a way we can change this behaviour?

Zagitta commented 8 months ago

I'm facing this exact issue here as well: https://github.com/alianse777/darknet-rust/issues/10

There really needs to be a way to instruct cmake-rs to not set those flags

Blonteractor commented 7 months ago

I am facing the same issue, the build command works when CMAKE_C_FLAGS and CMAKE_CXX_FLAGS are not passed in, but this lib always passes them as something and even when they are empty it doesnt work.

Chiichen commented 7 hours ago

The same on me https://github.com/LibVNC/libvncserver/issues/628! I'm not an expert on cmake. I can not find out the reson that these builds failed on. I think adding a flag like force_no_default_flags to pass no_default_setting=true to crate cc works. I will give it a try