Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 3 additions & 2 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -193,10 +193,11 @@ elseif(APPLE)

create_source_groups(MACOS_SOURCES)

elseif(LINUX)
elseif(UNIX AND NOT APPLE)
# Linux
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DGUID_STDLIB -std=c++17")

if (CMAKE_CXX_COMPILER MATCHES "clang")
if (CMAKE_CXX_COMPILER_ID MATCHES "Clang")
message(STATUS "Detected Clang compiler: ${CMAKE_CXX_COMPILER}")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -stdlib=libc++")
endif()
Expand Down
4 changes: 2 additions & 2 deletions sample/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -7,10 +7,10 @@ set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY_RELEASE "${CMAKE_BINARY_DIR}/Release")

set(CMAKE_CXX_STANDARD 17)

if(LINUX)
if(UNIX AND NOT APPLE)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++17")

if(CLANG)
if(CMAKE_CXX_COMPILER_ID MATCHES "Clang")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -stdlib=libc++")
endif()

Expand Down
4 changes: 2 additions & 2 deletions sample_shared/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -6,10 +6,10 @@ set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY_RELEASE "${CMAKE_BINARY_DIR}/Release")

set(CMAKE_CXX_STANDARD 17)

if(LINUX)
if(UNIX AND NOT APPLE)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++17")

if(CLANG)
if(CMAKE_CXX_COMPILER_ID MATCHES "Clang")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -stdlib=libc++")
endif()
endif()
Expand Down
4 changes: 4 additions & 0 deletions setup.py
Original file line number Diff line number Diff line change
Expand Up @@ -101,6 +101,10 @@ def main():

triplet = f'{arch}-{platform}'

# match CMAKE_MSVC_RUNTIME_LIBRARY: /MD shared, /MT static
if args.platform.startswith('win'):
triplet = f'{arch}-windows-static-md' if args.shared else f'{arch}-windows-static'

if args.platform == 'osx':
osx_arch = arch if arch == 'arm64' else 'x86_64' # no official universal triplet for osx vcpkg
cmake_command += f' -DVCPKG_HOST_TRIPLET={triplet}'
Expand Down
4 changes: 3 additions & 1 deletion source/gameanalytics/GAState.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -637,7 +637,9 @@ namespace gameanalytics
}
catch (json::exception& e)
{
logging::GALogger::e(e.what());
// discard unparseable cached config
logging::GALogger::w("Discarding incompatible cached sdk config: %s", e.what());
store::GAStore::setState("sdk_config_cached", "");
}
}

Expand Down
20 changes: 16 additions & 4 deletions source/gameanalytics/Platform/GALinux.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -78,14 +78,26 @@ std::string gameanalytics::GAPlatformLinux::getOSVersion()
struct utsname info;
uname(&info);

std::string version;
int const strSize = strlen(info.release);
std::string version = info.release;
size_t const strSize = version.size();

int dotCount = 0;
for (size_t i = 0; i < strSize; ++i)
{
if (!isdigit(info.release[i]) && info.release[i] != '.')
char const c = version[i];

if (c == '.')
{
++dotCount;
if (dotCount == 3)
{
version.resize(i);
break;
}
}
else if (!isdigit(static_cast<unsigned char>(c)))
{
version = std::string(info.release, info.release + i);
version.resize(i);
break;
}
}
Expand Down