Reset to before c++20 features that required clang.
continuous-integration/drone/push Build is passing Details

This commit is contained in:
Deukhoofd 2020-07-12 15:06:20 +02:00
parent 23bbd45d92
commit eb3e174877
Signed by: Deukhoofd
GPG Key ID: ADF2E9256009EDCE
4 changed files with 26 additions and 29 deletions

View File

@ -18,7 +18,7 @@ steps:
CC: /usr/bin/clang CC: /usr/bin/clang
CXX: /usr/bin/clang++ CXX: /usr/bin/clang++
commands: commands:
- cmake -DCMAKE_BUILD_TYPE=Release . -B build-release - cmake -DCMAKE_BUILD_TYPE=Release . -B build-release -DSTATICC=ON
- cmake --build build-release --target all -- -j 4 - cmake --build build-release --target all -- -j 4
- build-release/ArbutilsTests -s --durations yes --use-colour yes - build-release/ArbutilsTests -s --durations yes --use-colour yes
- valgrind --tool=memcheck --gen-suppressions=all --leak-check=full --leak-resolution=med --track-origins=yes --vgdb=no --error-exitcode=1 build-release/ArbutilsTests - valgrind --tool=memcheck --gen-suppressions=all --leak-check=full --leak-resolution=med --track-origins=yes --vgdb=no --error-exitcode=1 build-release/ArbutilsTests
@ -30,9 +30,14 @@ steps:
- name: test-release-windows - name: test-release-windows
image: deukhoofd/windowsbuilder image: deukhoofd/windowsbuilder
commands: commands:
- cmake -DCMAKE_BUILD_TYPE=Release . -B build-release-windows -D CMAKE_C_COMPILER=/home/wclang/x86_64-w64-mingw32/bin/x86_64-w64-mingw32-clang -D CMAKE_CXX_COMPILER=/home/wclang/x86_64-w64-mingw32/bin/x86_64-w64-mingw32-clang++ -DWINDOWS=ON -DSTATICC=ON - update-alternatives --set i686-w64-mingw32-gcc /usr/bin/i686-w64-mingw32-gcc-posix
- update-alternatives --set i686-w64-mingw32-g++ /usr/bin/i686-w64-mingw32-g++-posix
- update-alternatives --set x86_64-w64-mingw32-gcc /usr/bin/x86_64-w64-mingw32-gcc-posix
- update-alternatives --set x86_64-w64-mingw32-g++ /usr/bin/x86_64-w64-mingw32-g++-posix
- cmake -DCMAKE_BUILD_TYPE=Release . -B build-release-windows -D CMAKE_C_COMPILER=/usr/bin/x86_64-w64-mingw32-gcc -D CMAKE_CXX_COMPILER=x86_64-w64-mingw32-g++ -DWINDOWS=ON -DSTATICC=ON
- cmake --build build-release-windows --target all -- -j 4 - cmake --build build-release-windows --target all -- -j 4
- export WINEARCH=win64 - export WINEARCH=win64
- cp /usr/x86_64-w64-mingw32/lib/libwinpthread-1.dll /drone/src/build-release-windows/
- wine build-release-windows/ArbutilsTests.exe -s - wine build-release-windows/ArbutilsTests.exe -s
- name: conan-deploy - name: conan-deploy
image: deukhoofd/linux64builder image: deukhoofd/linux64builder
@ -45,7 +50,7 @@ steps:
- rm -rf build-debug - rm -rf build-debug
- rm -rf build-release-windows - rm -rf build-release-windows
- cmake -DCMAKE_BUILD_TYPE=Release . -B build-conan -D CMAKE_C_COMPILER=/usr/bin/clang -D CMAKE_CXX_COMPILER=clang++ -DWINDOWS=0 - cmake -DCMAKE_BUILD_TYPE=Release . -B build-conan -D CMAKE_C_COMPILER=/usr/bin/clang -D CMAKE_CXX_COMPILER=clang++ -DWINDOWS=0
- conan export-pkg . $DRONE_COMMIT@epsilon/$DRONE_BRANCH --build-folder build-conan -s compiler='clang' -s compiler.version=10 -s compiler.libcxx='libstdc++11' - conan export-pkg . $DRONE_COMMIT@epsilon/$DRONE_BRANCH --build-folder build-conan -s compiler='clang' -s compiler.version=8 -s compiler.libcxx='libstdc++11'
- conan alias Arbutils/latest@epsilon/$DRONE_BRANCH Arbutils/$DRONE_COMMIT@epsilon/$DRONE_BRANCH - conan alias Arbutils/latest@epsilon/$DRONE_BRANCH Arbutils/$DRONE_COMMIT@epsilon/$DRONE_BRANCH
- conan remote add epsilon-public https://packages.p-epsilon.com/ - conan remote add epsilon-public https://packages.p-epsilon.com/
- conan user -p -r=epsilon-public - conan user -p -r=epsilon-public

View File

@ -3,39 +3,36 @@ project(Arbutils)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -Werror") set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -Werror")
set(CMAKE_CXX_STANDARD 20) set(CMAKE_CXX_STANDARD 20)
find_package(Threads)
if (WINDOWS) if (WINDOWS)
ADD_DEFINITIONS(-D WINDOWS=1) ADD_DEFINITIONS(-D WINDOWS=1)
set(CMAKE_POSITION_INDEPENDENT_CODE 0)
endif (WINDOWS) endif (WINDOWS)
file(GLOB_RECURSE SRC_FILES "src/*.cpp" "src/*.hpp" "CInterface/*.cpp") file(GLOB_RECURSE SRC_FILES "src/*.cpp" "src/*.hpp" "CInterface/*.cpp")
set(LIBTYPE STATIC) set(LIBTYPE STATIC)
if (SHARED) if (SHARED)
set(LIBTYPE SHARED) set(LIBTYPE SHARED src/StringView.hpp src/String/BasicStringView.hpp src/String/StringViewLiteral.hpp CInterface/Random.cpp)
endif(SHARED) endif(SHARED)
add_library(Arbutils ${LIBTYPE} ${SRC_FILES}) add_library(Arbutils ${LIBTYPE} ${SRC_FILES})
file(GLOB_RECURSE TEST_FILES "tests/*.cpp" "tests/*.hpp")
if (NOT DEFINED CONAN_EXPORTED)
add_executable(ArbutilsTests ${TEST_FILES} extern/catch.hpp)
target_link_libraries(ArbutilsTests Arbutils)
endif()
if (WINDOWS) if (WINDOWS)
MESSAGE(WARNING, "Using Windows Build.") MESSAGE(WARNING, "Using Windows Build.")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -m64 -Wa,-mbig-obj -pthread") set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -m64 -Wa,-mbig-obj -Wl,-allow-multiple-definition")
set_target_properties(Arbutils PROPERTIES SUFFIX ".dll")
endif (WINDOWS) endif (WINDOWS)
if (STATICC) if (STATICC)
target_link_libraries(Arbutils -static-libgcc -static-libstdc++) target_link_libraries(Arbutils -static-libgcc -static-libstdc++)
endif (STATICC)
if (NOT DEFINED CONAN_EXPORTED) if (NOT DEFINED CONAN_EXPORTED)
file(GLOB_RECURSE TEST_FILES "tests/*.cpp" "tests/*.hpp") target_link_libraries(ArbutilsTests -static-libgcc -static-libstdc++)
add_executable(ArbutilsTests ${TEST_FILES} extern/catch.hpp)
if (WINDOWS)
set_target_properties(ArbutilsTests PROPERTIES SUFFIX ".exe")
endif() endif()
target_link_libraries(ArbutilsTests Arbutils) endif(STATICC)
endif ()
if (NOT DEFINED CONAN_EXPORTED) if (NOT DEFINED CONAN_EXPORTED)
target_compile_definitions(ArbutilsTests PRIVATE TESTS_BUILD) target_compile_definitions(ArbutilsTests PRIVATE TESTS_BUILD)

View File

@ -29,12 +29,7 @@ class ArbutilsConan(ConanFile):
self.output.info("Linking C libraries statically.") self.output.info("Linking C libraries statically.")
cmake.definitions["STATICC"] = "On" cmake.definitions["STATICC"] = "On"
if self.settings.compiler == "wclang":
cmake.definitions["CMAKE_C_COMPILER"] = "/home/wclang/x86_64-w64-mingw32/bin/x86_64-w64-mingw32-clang"
cmake.definitions["CMAKE_CXX_COMPILER"] = "/home/wclang/x86_64-w64-mingw32/bin/x86_64-w64-mingw32-clang++"
cmake.configure() cmake.configure()
self.output.info("running `cmake " + cmake.command_line + "`")
cmake.build() cmake.build()
def package(self): def package(self):

View File

@ -11,9 +11,9 @@ namespace ArbUt {
const char* _str; const char* _str;
public: public:
consteval StringViewLiteral(const char* str, size_t size) noexcept constexpr StringViewLiteral(const char* str, size_t size) noexcept
: BasicStringView(size, Hash(str)), _str(str) {} : BasicStringView(size, Hash(str)), _str(str) {}
consteval StringViewLiteral(const char* str) noexcept : StringViewLiteral(str, CalcLength(str)){}; constexpr StringViewLiteral(const char* str) noexcept : StringViewLiteral(str, CalcLength(str)){};
[[nodiscard]] inline constexpr const char* c_str() const noexcept { return _str; } [[nodiscard]] inline constexpr const char* c_str() const noexcept { return _str; }
constexpr std::string_view std_str() const noexcept { return std::string_view(_str, _length); } constexpr std::string_view std_str() const noexcept { return std::string_view(_str, _length); }
constexpr std::size_t operator()(StringViewLiteral const& s) const noexcept { return s.GetHash(); } constexpr std::size_t operator()(StringViewLiteral const& s) const noexcept { return s.GetHash(); }
@ -36,10 +36,10 @@ namespace std {
}; };
} }
inline consteval ArbUt::StringViewLiteral operator"" _const_nocase(const char* c, size_t l) { inline constexpr ArbUt::StringViewLiteral operator"" _const_nocase(const char* c, size_t l) {
return ArbUt::StringViewLiteral(c, l); return ArbUt::StringViewLiteral(c, l);
} }
inline consteval ArbUt::StringViewLiteral operator"" _cnc(const char* c, size_t l) { inline constexpr ArbUt::StringViewLiteral operator"" _cnc(const char* c, size_t l) {
return ArbUt::StringViewLiteral(c, l); return ArbUt::StringViewLiteral(c, l);
} }