mirror of
https://github.com/MaskRay/ccls.git
synced 2025-06-10 02:02:12 +00:00
fix msvc15 compile issues
This commit is contained in:
parent
2e187db360
commit
3ba92f5c4b
22
.appveyor.yml
Normal file
22
.appveyor.yml
Normal 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
|
@ -60,6 +60,7 @@ if(MSVC)
|
|||||||
/wd4068 # Disable unknown pragma warning
|
/wd4068 # Disable unknown pragma warning
|
||||||
$<$<CONFIG:Debug>:/FS>
|
$<$<CONFIG:Debug>:/FS>
|
||||||
)
|
)
|
||||||
|
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
|
||||||
|
@ -2,6 +2,7 @@
|
|||||||
|
|
||||||
[](https://telegram.me/cclsp)
|
[](https://telegram.me/cclsp)
|
||||||
[](https://gitter.im/ccls-project/ccls)
|
[](https://gitter.im/ccls-project/ccls)
|
||||||
|
[](https://ci.appveyor.com/project/DsoTsin/ccls)
|
||||||
|
|
||||||
ccls, which originates from [cquery](https://github.com/cquery-project/cquery), is a C/C++/Objective-C language server.
|
ccls, which originates from [cquery](https://github.com/cquery-project/cquery), is a C/C++/Objective-C language server.
|
||||||
|
|
||||||
|
@ -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")
|
||||||
|
@ -45,7 +45,8 @@ static Pos Decomposed2LineAndCol(const SourceManager &SM,
|
|||||||
std::pair<FileID, unsigned> I) {
|
std::pair<FileID, unsigned> I) {
|
||||||
int l = SM.getLineNumber(I.first, I.second) - 1,
|
int l = SM.getLineNumber(I.first, I.second) - 1,
|
||||||
c = SM.getColumnNumber(I.first, I.second) - 1;
|
c = SM.getColumnNumber(I.first, I.second) - 1;
|
||||||
return {(int16_t)std::min(l, INT16_MAX), (int16_t)std::min(c, INT16_MAX)};
|
return {(int16_t)std::min<int16_t>(l, INT16_MAX),
|
||||||
|
(int16_t)std::min<int16_t>(c, INT16_MAX)};
|
||||||
}
|
}
|
||||||
|
|
||||||
Range FromCharSourceRange(const SourceManager &SM, const LangOptions &LangOpts,
|
Range FromCharSourceRange(const SourceManager &SM, const LangOptions &LangOpts,
|
||||||
|
@ -19,6 +19,7 @@ limitations under the License.
|
|||||||
#include "serializers/json.hh"
|
#include "serializers/json.hh"
|
||||||
|
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
|
#include <algorithm>
|
||||||
|
|
||||||
namespace ccls {
|
namespace ccls {
|
||||||
void Reflect(Reader &visitor, RequestId &value) {
|
void Reflect(Reader &visitor, RequestId &value) {
|
||||||
|
@ -20,6 +20,7 @@ limitations under the License.
|
|||||||
#include <limits.h>
|
#include <limits.h>
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
|
#include <algorithm>
|
||||||
|
|
||||||
namespace ccls {
|
namespace ccls {
|
||||||
Pos Pos::FromString(const std::string &encoded) {
|
Pos Pos::FromString(const std::string &encoded) {
|
||||||
@ -57,7 +58,7 @@ Range Range::FromString(const std::string &encoded) {
|
|||||||
bool Range::Contains(int line, int column) const {
|
bool Range::Contains(int line, int column) const {
|
||||||
if (line > INT16_MAX)
|
if (line > INT16_MAX)
|
||||||
return false;
|
return false;
|
||||||
Pos p{int16_t(line), int16_t(std::min(column, INT16_MAX))};
|
Pos p{int16_t(line), int16_t(std::min<int16_t>(column, INT16_MAX))};
|
||||||
return !(p < start) && p < end;
|
return !(p < start) && p < end;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -76,13 +76,14 @@ void Reflect(Writer &visitor, Range &value);
|
|||||||
namespace std {
|
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 {
|
||||||
ccls::Range range = {};
|
ccls::Range range = {};
|
||||||
uint64_t u64;
|
uint64_t u64;
|
||||||
} u;
|
} u;
|
||||||
static_assert(sizeof(ccls::Range) == 8);
|
static_assert(sizeof(ccls::Range) == 8);
|
||||||
u.range = x;
|
u.range = x;*/
|
||||||
return hash<uint64_t>()(u.u64);
|
std::string data((const char*)&x, sizeof(x));
|
||||||
|
return hash<std::string>()(data);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
} // namespace std
|
} // namespace std
|
||||||
|
Loading…
Reference in New Issue
Block a user