* Add Appveyor CI script

* fix VS2017 Compile issues
This commit is contained in:
alexqzhou 2018-11-12 15:40:25 +08:00
parent 94c6f4335c
commit e5dc30318c
4 changed files with 30 additions and 3 deletions

22
.appveyor.yml Normal file
View File

@ -0,0 +1,22 @@
version: "{build}"
os: Visual Studio 2017
platform:
- x64
build:
parallel: true # enable MSBuild parallel builds
verbosity: minimal
install:
- if not exist llvm.tar.xz appveyor DownloadFile "https://ziglang.org/deps/llvm+clang-7.0.0-win64-msvc-release.tar.xz" -FileName llvm.tar.xz
- 7z e -txz llvm.tar.xz
- 7z x llvm.tar
- git submodule update --init --recursive
build_script:
- cmake -G"Visual Studio 15 2017 Win64" -H. -Bbuild -DCMAKE_BUILD_TYPE=Release -DSYSTEM_CLANG=ON -DCLANG_ROOT=C:\projects\ccls\llvm+clang-7.0.0-win64-msvc-release
- cmake --build build --target ccls --config Release
artifacts:
- path: build\Release

View File

@ -58,8 +58,11 @@ if(MSVC)
# roughly -Wno-sign-compare # roughly -Wno-sign-compare
/wd4800 /wd4800
/wd4068 # Disable unknown pragma warning /wd4068 # Disable unknown pragma warning
/std:c++17
$<$<CONFIG:Debug>:/FS> $<$<CONFIG:Debug>:/FS>
) )
# relink system libs
target_link_libraries(ccls PRIVATE Mincore.lib)
else() else()
# Common GCC/Clang(Linux) options # Common GCC/Clang(Linux) options
target_compile_options(ccls PRIVATE target_compile_options(ccls PRIVATE

View File

@ -143,9 +143,10 @@ if(Clang_FOUND AND NOT TARGET Clang::Clang)
set_target_properties(Clang::Clang PROPERTIES set_target_properties(Clang::Clang PROPERTIES
IMPORTED_LOCATION ${Clang_LIBRARY} IMPORTED_LOCATION ${Clang_LIBRARY}
INTERFACE_INCLUDE_DIRECTORIES "${Clang_INCLUDE_DIR};${Clang_BUILD_INCLUDE_DIR};${LLVM_INCLUDE_DIR};${LLVM_BUILD_INCLUDE_DIR}") INTERFACE_INCLUDE_DIRECTORIES "${Clang_INCLUDE_DIR};${Clang_BUILD_INCLUDE_DIR};${LLVM_INCLUDE_DIR};${LLVM_BUILD_INCLUDE_DIR}")
if(NOT WIN32)
find_package(Curses REQUIRED) find_package(Curses REQUIRED)
find_package(ZLIB REQUIRED) find_package(ZLIB REQUIRED)
endif()
set_property(TARGET Clang::Clang PROPERTY IMPORTED_LINK_INTERFACE_LIBRARIES "${_Clang_LIBRARIES};${CURSES_LIBRARIES};${ZLIB_LIBRARIES}") set_property(TARGET Clang::Clang PROPERTY IMPORTED_LINK_INTERFACE_LIBRARIES "${_Clang_LIBRARIES};${CURSES_LIBRARIES};${ZLIB_LIBRARIES}")
if(MINGW) if(MINGW)
set_property(TARGET Clang::Clang APPEND_STRING PROPERTY IMPORTED_LINK_INTERFACE_LIBRARIES ";version") set_property(TARGET Clang::Clang APPEND_STRING PROPERTY IMPORTED_LINK_INTERFACE_LIBRARIES ";version")

View File

@ -76,6 +76,7 @@ namespace std {
template <> struct hash<ccls::Range> { template <> struct hash<ccls::Range> {
std::size_t operator()(ccls::Range x) const { std::size_t operator()(ccls::Range x) const {
union U { union U {
U() {} // On VS2017, still need constructor here
ccls::Range range = {}; ccls::Range range = {};
uint64_t u64; uint64_t u64;
} u; } u;