diff --git a/examples/main.cpp b/examples/main.cpp index c138c0d1..1fb34b11 100644 --- a/examples/main.cpp +++ b/examples/main.cpp @@ -2,11 +2,13 @@ #include -#include +#include + +using namespace tribufu; int main(int argc, char **argv) { - auto client = TribufuClient(0, "client_secret"); - std::cout << "client_id: " << client.get_id() << std::endl; + auto client = new TribufuClient(0, "client_secret"); + std::cout << "client_id: " << client->get_id() << std::endl; return 0; } diff --git a/include/tribufu.h b/include/tribufu.h index 6c1cd9e6..6e09a83e 100644 --- a/include/tribufu.h +++ b/include/tribufu.h @@ -2,4 +2,4 @@ #pragma once -#include +#include diff --git a/include/tribufu/android/android_platform.h b/include/tribufu/android/android_platform.h new file mode 100644 index 00000000..09b2fd73 --- /dev/null +++ b/include/tribufu/android/android_platform.h @@ -0,0 +1,13 @@ +// Copyright (c) Tribufu. All Rights Reserved. + +#pragma once + +#include + +#ifndef TRIBUFU_ANDROID +#define TRIBUFU_ANDROID +#endif + +#ifndef TRIBUFU_MOBILE +#define TRIBUFU_MOBILE +#endif diff --git a/include/tribufu/apple/apple_platform.h b/include/tribufu/apple/apple_platform.h new file mode 100644 index 00000000..e20e4d04 --- /dev/null +++ b/include/tribufu/apple/apple_platform.h @@ -0,0 +1,10 @@ +// Copyright (c) Tribufu. All Rights Reserved. + +#pragma once + +#ifndef TRIBUFU_APPLE +#define TRIBUFU_APPLE +#endif + +#define DLLEXPORT __attribute__((visibility("default"))) +#define DLLIMPORT __attribute__((visibility("default"))) diff --git a/include/tribufu/base.h b/include/tribufu/base.h new file mode 100644 index 00000000..d267e322 --- /dev/null +++ b/include/tribufu/base.h @@ -0,0 +1,7 @@ +// Copyright (c) Tribufu. All Rights Reserved. + +#pragma once + +#include +#include +#include diff --git a/include/tribufu/client.h b/include/tribufu/client.h index 6948bd93..f82bda50 100644 --- a/include/tribufu/client.h +++ b/include/tribufu/client.h @@ -2,25 +2,25 @@ #pragma once -#include +#include const char *VERSION = "0.0.4"; -class TribufuClient +namespace tribufu { -private: - uint64_t id; - std::string secret; - -public: - TribufuClient(uint64_t id, const std::string &secret) + class TRIBUFU_API TribufuClient { - this->id = id; - this->secret = secret; - } + private: + uint64_t id; + std::string secret; - uint64_t get_id() const - { - return this->id; - } -}; + public: + TribufuClient(uint64_t id, const std::string &secret); + ~TribufuClient(); + + uint64_t get_id() const + { + return this->id; + } + }; +} diff --git a/include/tribufu/defines.h b/include/tribufu/defines.h new file mode 100644 index 00000000..ed0cb1f1 --- /dev/null +++ b/include/tribufu/defines.h @@ -0,0 +1,61 @@ +// Copyright (c) Tribufu. All Rights Reserved. + +#pragma once + +#ifndef EXTERN_C +#ifdef __cplusplus +#define EXTERN_C extern "C" +#define TRIBUFU_CPP +#else +#define EXTERN_C +#endif +#endif + +// Declare Enum + +#ifdef __cplusplus + +#define TRIBUFU_ENUM_START(name) enum class name { +#define TRIBUFU_ENUM_END(name) } + +#else + +#define TRIBUFU_ENUM_START(name) typedef enum name { +#define TRIBUFU_ENUM_END } name + +#endif + +#define TRIBUFU_DECLARE_ENUM(name, ...) TRIBUFU_ENUM_START(name) __VA_ARGS__ TRIBUFU_ENUM_END + +// Declare Struct + +#define TRIBUFU_PASTE(...) __VA_ARGS__ + +#define TRIBUFU_DECLARE_STRUCT(name, body) \ + EXTERN_C typedef struct name \ + { \ + TRIBUFU_PASTE body \ + } name + +// Experimental + +#define TRIBUFU_CLASS(...) +#define TRIBUFU_STRUCT(...) +#define TRIBUFU_ENUM(...) +#define TRIBUFU_FUNCTION(...) +#define TRIBUFU_PROPERTY(...) + +// Import/Export API + +#define NATIVE_API EXTERN_C + +#ifdef TRIBUFU_LIBRARY +#define TRIBUFU_API DLLEXPORT +#else +#define TRIBUFU_API DLLIMPORT +#endif + +// Macros Utils + +#define TRIBUFU_EXPAND_MACRO(x) x +#define TRIBUFU_STRINGIFY_MACRO(x) #x diff --git a/include/tribufu/freebsd/freebsd_platform.h b/include/tribufu/freebsd/freebsd_platform.h new file mode 100644 index 00000000..82469422 --- /dev/null +++ b/include/tribufu/freebsd/freebsd_platform.h @@ -0,0 +1,13 @@ +// Copyright (c) Tribufu. All Rights Reserved. + +#pragma once + +#include + +#ifndef TRIBUFU_FREEBSD +#define TRIBUFU_FREEBSD +#endif + +#ifndef TRIBUFU_DESKTOP +#define TRIBUFU_DESKTOP +#endif diff --git a/include/tribufu/ios/ios_platform.h b/include/tribufu/ios/ios_platform.h new file mode 100644 index 00000000..36635864 --- /dev/null +++ b/include/tribufu/ios/ios_platform.h @@ -0,0 +1,13 @@ +// Copyright (c) Tribufu. All Rights Reserved. + +#pragma once + +#include + +#ifndef TRIBUFU_IOS +#define TRIBUFU_IOS +#endif + +#ifndef TRIBUFU_MOBILE +#define TRIBUFU_MOBILE +#endif diff --git a/include/tribufu/linux/linux_platform.h b/include/tribufu/linux/linux_platform.h new file mode 100644 index 00000000..e0b12e9a --- /dev/null +++ b/include/tribufu/linux/linux_platform.h @@ -0,0 +1,13 @@ +// Copyright (c) Tribufu. All Rights Reserved. + +#pragma once + +#include + +#ifndef TRIBUFU_LINUX +#define TRIBUFU_LINUX +#endif + +#ifndef TRIBUFU_DESKTOP +#define TRIBUFU_DESKTOP +#endif diff --git a/include/tribufu/mac/mac_platform.h b/include/tribufu/mac/mac_platform.h new file mode 100644 index 00000000..5cb70285 --- /dev/null +++ b/include/tribufu/mac/mac_platform.h @@ -0,0 +1,13 @@ +// Copyright (c) Tribufu. All Rights Reserved. + +#pragma once + +#include + +#ifndef TRIBUFU_MAC +#define TRIBUFU_MAC +#endif + +#ifndef TRIBUFU_DESKTOP +#define TRIBUFU_DESKTOP +#endif diff --git a/include/tribufu/msvc/msvc_platform.h b/include/tribufu/msvc/msvc_platform.h new file mode 100644 index 00000000..968494f0 --- /dev/null +++ b/include/tribufu/msvc/msvc_platform.h @@ -0,0 +1,14 @@ +// Copyright (c) Tribufu. All Rights Reserved. + +#pragma once + +#ifndef TRIBUFU_MSVC +#define TRIBUFU_MSVC +#endif + +#ifndef TRIBUFU_MICROSOFT +#define TRIBUFU_MICROSOFT +#endif + +#define DLLEXPORT __declspec(dllexport) +#define DLLIMPORT __declspec(dllimport) diff --git a/include/tribufu/pch.h b/include/tribufu/pch.h deleted file mode 100644 index 6494f4ee..00000000 --- a/include/tribufu/pch.h +++ /dev/null @@ -1,12 +0,0 @@ -// Copyright (c) Tribufu. All Rights Reserved. - -#pragma once - -#ifdef __cplusplus - -#include -#include - -#else -#error "C++ compiler required." -#endif diff --git a/include/tribufu/platform.h b/include/tribufu/platform.h new file mode 100644 index 00000000..853f5b49 --- /dev/null +++ b/include/tribufu/platform.h @@ -0,0 +1,30 @@ +// Copyright (c) Tribufu. All Rights Reserved. + +#pragma once + +#ifdef _WIN32 +#include +#endif + +#ifdef __MACH__ +#include +#endif + +#ifdef __linux__ +#include +#endif + +#ifdef __FreeBSD__ +#include +#endif + +#ifdef __ANDROID__ +#include +#endif + +#ifdef __APPLE__ +// #include +#ifdef TARGET_OS_IPHONE +#include +#endif +#endif diff --git a/include/tribufu/sdk.h b/include/tribufu/sdk.h deleted file mode 100644 index 6e09a83e..00000000 --- a/include/tribufu/sdk.h +++ /dev/null @@ -1,5 +0,0 @@ -// Copyright (c) Tribufu. All Rights Reserved. - -#pragma once - -#include diff --git a/include/tribufu/std.h b/include/tribufu/std.h new file mode 100644 index 00000000..4e32cc8f --- /dev/null +++ b/include/tribufu/std.h @@ -0,0 +1,24 @@ +// Copyright (c) Tribufu. All Rights Reserved. + +#pragma once + +#include +#include +#include +#include + +#ifdef TRIBUFU_CPP + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#endif diff --git a/include/tribufu/unix/unix_platform.h b/include/tribufu/unix/unix_platform.h new file mode 100644 index 00000000..2f9d85e1 --- /dev/null +++ b/include/tribufu/unix/unix_platform.h @@ -0,0 +1,10 @@ +// Copyright (c) Tribufu. All Rights Reserved. + +#pragma once + +#ifndef TRIBUFU_UNIX +#define TRIBUFU_UNIX +#endif + +#define DLLEXPORT __attribute__((visibility("default"))) +#define DLLIMPORT __attribute__((visibility("default"))) diff --git a/include/tribufu/uwp/uwp_platform.h b/include/tribufu/uwp/uwp_platform.h new file mode 100644 index 00000000..cba545bc --- /dev/null +++ b/include/tribufu/uwp/uwp_platform.h @@ -0,0 +1,9 @@ +// Copyright (c) Tribufu. All Rights Reserved. + +#pragma once + +#include + +#ifndef TRIBUFU_UWP +#define TRIBUFU_UWP +#endif diff --git a/include/tribufu/windows/windows_platform.h b/include/tribufu/windows/windows_platform.h new file mode 100644 index 00000000..c0543322 --- /dev/null +++ b/include/tribufu/windows/windows_platform.h @@ -0,0 +1,13 @@ +// Copyright (c) Tribufu. All Rights Reserved. + +#pragma once + +#include + +#ifndef TRIBUFU_WINDOWS +#define TRIBUFU_WINDOWS +#endif + +#ifndef TRIBUFU_DESKTOP +#define TRIBUFU_DESKTOP +#endif diff --git a/src/client.cpp b/src/client.cpp index 763dd8dd..f8ed8ee6 100644 --- a/src/client.cpp +++ b/src/client.cpp @@ -1,3 +1,16 @@ // Copyright (c) Tribufu. All Rights Reserved. #include + +namespace tribufu +{ + TribufuClient::TribufuClient(uint64_t id, const std::string &secret) + { + this->id = id; + this->secret = secret; + } + + TribufuClient::~TribufuClient() + { + } +} diff --git a/src/pch.cpp b/src/pch.cpp deleted file mode 100644 index 4a541356..00000000 --- a/src/pch.cpp +++ /dev/null @@ -1,3 +0,0 @@ -// Copyright (c) Tribufu. All Rights Reserved. - -#include diff --git a/src/premake5.lua b/src/premake5.lua index 7cae6a8c..d0106021 100644 --- a/src/premake5.lua +++ b/src/premake5.lua @@ -9,9 +9,6 @@ project "tribufu_cpp" targetdir("../bin/%{cfg.platform:gsub('-', '/')}") objdir("../target/%{cfg.buildcfg}/obj/%{prj.name}/%{cfg.platform:gsub('-', '/')}") - -- pchheader "tribufu/pch.h" - -- pchsource "pch.cpp" - files { "./**.cpp",