commit
3562f9bb79
4 changed files with 26 additions and 7 deletions
|
@ -43,6 +43,16 @@
|
||||||
|
|
||||||
set(CMAKE_CXX_FLAGS "-std=c++11 -stdlib=libc++ ${CMAKE_CXX_FLAGS}")
|
set(CMAKE_CXX_FLAGS "-std=c++11 -stdlib=libc++ ${CMAKE_CXX_FLAGS}")
|
||||||
|
|
||||||
|
if (MSVC)
|
||||||
|
# /wd4005 macro-redefinition
|
||||||
|
# /wd4068 unknown pragma
|
||||||
|
# /wd4244 conversion from 'type1' to 'type2'
|
||||||
|
# /wd4267 conversion from 'size_t' to 'type2'
|
||||||
|
# /wd4800 force value to bool 'true' or 'false' (performance warning)
|
||||||
|
add_compile_options(/wd4005 /wd4068 /wd4244 /wd4267 /wd4800)
|
||||||
|
add_definitions(/DNOMINMAX /DWIN32_LEAN_AND_MEAN=1 /D_CRT_SECURE_NO_WARNINGS)
|
||||||
|
endif()
|
||||||
|
|
||||||
add_subdirectory(googletest)
|
add_subdirectory(googletest)
|
||||||
add_subdirectory(cctz)
|
add_subdirectory(cctz)
|
||||||
add_subdirectory(abseil-cpp)
|
add_subdirectory(abseil-cpp)
|
||||||
|
@ -51,7 +61,7 @@
|
||||||
target_link_libraries(my_exe absl::base absl::synchronization absl::strings)
|
target_link_libraries(my_exe absl::base absl::synchronization absl::strings)
|
||||||
|
|
||||||
|
|
||||||
You will need to create your own CMake files for cctz until https://github.com/google/cctz/pull/54 lands. As of this writing, that pull request requires -DBUILD_TESTING=OFF as it doesn't correctly export cctz's dependency on Google Benchmark.
|
As of this writing, that pull request requires -DBUILD_TESTING=OFF as it doesn't correctly export cctz's dependency on Google Benchmark.
|
||||||
|
|
||||||
You will find here a non exhaustive list of absl public targets
|
You will find here a non exhaustive list of absl public targets
|
||||||
|
|
||||||
|
|
|
@ -26,7 +26,17 @@ include(AbseilHelpers)
|
||||||
|
|
||||||
|
|
||||||
# config options
|
# config options
|
||||||
set(ABSL_STD_CXX_FLAG "-std=c++11" CACHE STRING "c++ std flag (default: c++11)")
|
if (MSVC)
|
||||||
|
# /wd4005 macro-redefinition
|
||||||
|
# /wd4068 unknown pragma
|
||||||
|
# /wd4244 conversion from 'type1' to 'type2'
|
||||||
|
# /wd4267 conversion from 'size_t' to 'type2'
|
||||||
|
# /wd4800 force value to bool 'true' or 'false' (performance warning)
|
||||||
|
add_compile_options(/W3 /WX /wd4005 /wd4068 /wd4244 /wd4267 /wd4800)
|
||||||
|
add_definitions(/DNOMINMAX /DWIN32_LEAN_AND_MEAN=1 /D_CRT_SECURE_NO_WARNINGS)
|
||||||
|
else()
|
||||||
|
set(ABSL_STD_CXX_FLAG "-std=c++11" CACHE STRING "c++ std flag (default: c++11)")
|
||||||
|
endif()
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@ -66,9 +76,6 @@ check_target(gmock)
|
||||||
# -fexceptions
|
# -fexceptions
|
||||||
set(ABSL_EXCEPTIONS_FLAG "${CMAKE_CXX_EXCEPTIONS}")
|
set(ABSL_EXCEPTIONS_FLAG "${CMAKE_CXX_EXCEPTIONS}")
|
||||||
|
|
||||||
# fix stuff
|
|
||||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FIX_MSVC} ${CMAKE_CXX_FLAGS}")
|
|
||||||
|
|
||||||
list(APPEND ABSL_TEST_COMMON_LIBRARIES
|
list(APPEND ABSL_TEST_COMMON_LIBRARIES
|
||||||
gtest_main
|
gtest_main
|
||||||
gtest
|
gtest
|
||||||
|
|
|
@ -103,7 +103,9 @@ MSVC_FLAGS = [
|
||||||
"/wd4244", # conversion from 'type1' to 'type2', possible loss of data
|
"/wd4244", # conversion from 'type1' to 'type2', possible loss of data
|
||||||
"/wd4267", # conversion from 'size_t' to 'type', possible loss of data
|
"/wd4267", # conversion from 'size_t' to 'type', possible loss of data
|
||||||
"/wd4800", # forcing value to bool 'true' or 'false' (performance warning)
|
"/wd4800", # forcing value to bool 'true' or 'false' (performance warning)
|
||||||
|
"/DNOMINMAX", # Don't define min and max macros (windows.h)
|
||||||
"/DWIN32_LEAN_AND_MEAN", # Don't bloat namespace with incompatible winsock versions.
|
"/DWIN32_LEAN_AND_MEAN", # Don't bloat namespace with incompatible winsock versions.
|
||||||
|
"/D_CRT_SECURE_NO_WARNINGS", # Don't warn about usage of insecure C functions
|
||||||
]
|
]
|
||||||
|
|
||||||
MSVC_TEST_FLAGS = [
|
MSVC_TEST_FLAGS = [
|
||||||
|
|
|
@ -510,7 +510,7 @@ namespace {
|
||||||
// Returns the maximum duration that SleepOnce() can sleep for.
|
// Returns the maximum duration that SleepOnce() can sleep for.
|
||||||
constexpr absl::Duration MaxSleep() {
|
constexpr absl::Duration MaxSleep() {
|
||||||
#ifdef _WIN32
|
#ifdef _WIN32
|
||||||
// Windows _sleep() takes unsigned long argument in milliseconds.
|
// Windows Sleep() takes unsigned long argument in milliseconds.
|
||||||
return absl::Milliseconds(
|
return absl::Milliseconds(
|
||||||
std::numeric_limits<unsigned long>::max()); // NOLINT(runtime/int)
|
std::numeric_limits<unsigned long>::max()); // NOLINT(runtime/int)
|
||||||
#else
|
#else
|
||||||
|
@ -522,7 +522,7 @@ constexpr absl::Duration MaxSleep() {
|
||||||
// REQUIRES: to_sleep <= MaxSleep().
|
// REQUIRES: to_sleep <= MaxSleep().
|
||||||
void SleepOnce(absl::Duration to_sleep) {
|
void SleepOnce(absl::Duration to_sleep) {
|
||||||
#ifdef _WIN32
|
#ifdef _WIN32
|
||||||
_sleep(to_sleep / absl::Milliseconds(1));
|
Sleep(to_sleep / absl::Milliseconds(1));
|
||||||
#else
|
#else
|
||||||
struct timespec sleep_time = absl::ToTimespec(to_sleep);
|
struct timespec sleep_time = absl::ToTimespec(to_sleep);
|
||||||
while (nanosleep(&sleep_time, &sleep_time) != 0 && errno == EINTR) {
|
while (nanosleep(&sleep_time, &sleep_time) != 0 && errno == EINTR) {
|
||||||
|
|
Loading…
Reference in a new issue