noloader / cryptopp-cmake

CMake files for Crypto++ project
BSD 3-Clause "New" or "Revised" License
92 stars 68 forks source link

Fix compiler options setting #79

Closed isanych closed 2 years ago

isanych commented 2 years ago
noloader commented 2 years ago

Thanks @isanych,

I'm not sure about this:

CMAKE_CPP_FLAGS belong to options and not definitions

CPPFLAGS are considered definitions. Options are compiler options. I may move it back later. I need to test on some older platforms.

Thanks for the patch.

noloader commented 2 years ago

@isanych,

This change just broke armel:

/usr/bin/c++   -O2 -g -DNDEBUG -fPIC -march=armv7-a -mfpu=neon -MD -MT CMakeFiles/cryptopp-object.dir/aria_simd.cpp.o -MF CMakeFiles/cryptopp-object.dir/aria_simd.cpp.o.d -o CMakeFiles/cryptopp-object.dir/aria_simd.cpp.o -c /cryptopp/aria_simd.cpp
In file included from /cryptopp/aria_simd.cpp:18:
/usr/lib/gcc/arm-linux-gnueabi/11/include/arm_neon.h:31:2: error: #error "NEON intrinsics not available with the soft-float ABI.  Please use -mfloat-abi=softfp or -mfloat-abi=hard"
   31 | #error "NEON intrinsics not available with the soft-float ABI.  Please use -mfloat-abi=softfp or -mfloat-abi=hard"
      |  ^~~~~
/cryptopp/aria_simd.cpp:63:34: error: ‘uint32x4_t’ does not name a type; did you mean ‘uint32_t’?
   63 | inline void ARIA_GSRK_NEON(const uint32x4_t X, const uint32x4_t Y, byte RK[16])
      |                                  ^~~~~~~~~~
      |                                  uint32_t
/cryptopp/aria_simd.cpp:63:54: error: ‘uint32x4_t’ does not name a type; did you mean ‘uint32_t’?
   63 | inline void ARIA_GSRK_NEON(const uint32x4_t X, const uint32x4_t Y, byte RK[16])
      |                                                      ^~~~~~~~~~
      |                                                      uint32_t
   ...

Cmake does not work like users expect. It is half-ass, poorly tested software. It is why we removed official support for it.