From e5f7a938b56bafad31d910e7a774ec70ea65a19e Mon Sep 17 00:00:00 2001 From: Dso Tsin Date: Tue, 13 Nov 2018 12:33:01 +0800 Subject: [PATCH] Fix VS2017 build issues and add Appveyor CI script (#118) --- .appveyor.yml | 22 ++++++++++++++++++++++ CMakeLists.txt | 7 ++++--- cmake/FindClang.cmake | 7 ++++--- 3 files changed, 30 insertions(+), 6 deletions(-) create mode 100644 .appveyor.yml diff --git a/.appveyor.yml b/.appveyor.yml new file mode 100644 index 00000000..0fc36d3f --- /dev/null +++ b/.appveyor.yml @@ -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 diff --git a/CMakeLists.txt b/CMakeLists.txt index abe0e04b..3d608c90 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -50,16 +50,17 @@ if(MSVC) /EHsc /D_CRT_SECURE_NO_WARNINGS # don't try to use MSVC std replacements /W3 # roughly -Wall - /wd4996 # disable loguru unsafe warnings - /wd4722 # ignores warning C4722 - # (destructor never returns) in loguru + /wd4996 # ignore deprecated declaration /wd4267 # ignores warning C4267 # (conversion from 'size_t' to 'type'), # roughly -Wno-sign-compare /wd4800 /wd4068 # Disable unknown pragma warning + /std:c++17 $<$:/FS> ) + # relink system libs + target_link_libraries(ccls PRIVATE Mincore.lib) else() # Common GCC/Clang(Linux) options target_compile_options(ccls PRIVATE diff --git a/cmake/FindClang.cmake b/cmake/FindClang.cmake index e56e25dd..19402900 100644 --- a/cmake/FindClang.cmake +++ b/cmake/FindClang.cmake @@ -143,9 +143,10 @@ if(Clang_FOUND AND NOT TARGET Clang::Clang) set_target_properties(Clang::Clang PROPERTIES IMPORTED_LOCATION ${Clang_LIBRARY} INTERFACE_INCLUDE_DIRECTORIES "${Clang_INCLUDE_DIR};${Clang_BUILD_INCLUDE_DIR};${LLVM_INCLUDE_DIR};${LLVM_BUILD_INCLUDE_DIR}") - - find_package(Curses REQUIRED) - find_package(ZLIB REQUIRED) + if(NOT MSVC) + find_package(Curses REQUIRED) + find_package(ZLIB REQUIRED) + endif() set_property(TARGET Clang::Clang PROPERTY IMPORTED_LINK_INTERFACE_LIBRARIES "${_Clang_LIBRARIES};${CURSES_LIBRARIES};${ZLIB_LIBRARIES}") if(MINGW) set_property(TARGET Clang::Clang APPEND_STRING PROPERTY IMPORTED_LINK_INTERFACE_LIBRARIES ";version")