Migrating to Linux
This commit is contained in:
parent
c65b1c8139
commit
14f3339eee
21
DevPlayground/CMakeLists.txt
Normal file
21
DevPlayground/CMakeLists.txt
Normal file
@ -0,0 +1,21 @@
|
|||||||
|
cmake_minimum_required(VERSION 3.15...3.30)
|
||||||
|
|
||||||
|
project(DevPlayground)
|
||||||
|
|
||||||
|
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -stdlib=libc++")
|
||||||
|
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -stdlib=libstdc++")
|
||||||
|
|
||||||
|
add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/../Engine/Source/Runtime ${CMAKE_BINARY_DIR}/Engine)
|
||||||
|
|
||||||
|
|
||||||
|
include_directories(${CMAKE_CURRENT_SOURCE_DIR}../Engine/Source/Runtime)
|
||||||
|
|
||||||
|
add_executable(DevPlayground
|
||||||
|
DevPlayground.cpp
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
|
add_compile_definitions(P_LINUX_BUILD)
|
||||||
|
add_compile_definitions(P_DEBUG)
|
||||||
|
|
||||||
|
target_link_libraries(DevPlayground PRIVATE PhanesCore)
|
@ -1,6 +1,5 @@
|
|||||||
#define P_USE_NAMESPACE_ALIAS
|
#define P_USE_NAMESPACE_ALIAS
|
||||||
|
|
||||||
|
|
||||||
#include "Phanes.h"
|
#include "Phanes.h"
|
||||||
|
|
||||||
class DevPlayground : public PApp::PhanesProject
|
class DevPlayground : public PApp::PhanesProject
|
||||||
|
5
Engine/Source/Runtime/CMakeLists.txt
Normal file
5
Engine/Source/Runtime/CMakeLists.txt
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
cmake_minimum_required(VERSION 3.15...3.30)
|
||||||
|
|
||||||
|
project(PhanesRuntime)
|
||||||
|
|
||||||
|
add_subdirectory(Core)
|
26
Engine/Source/Runtime/Core/CMakeLists.txt
Normal file
26
Engine/Source/Runtime/Core/CMakeLists.txt
Normal file
@ -0,0 +1,26 @@
|
|||||||
|
cmake_minimum_required(VERSION 3.15...3.30)
|
||||||
|
|
||||||
|
project(PhanesCore)
|
||||||
|
|
||||||
|
set(CMAKE_CXX_STANDARD 20)
|
||||||
|
set(CMAKE_CXX_STANDARD_REQUIRED ON)
|
||||||
|
|
||||||
|
include(Logging/CMakeLists.txt)
|
||||||
|
include(StartingPoint/CMakeLists.txt)
|
||||||
|
|
||||||
|
add_library(PhanesCore STATIC
|
||||||
|
Core.h
|
||||||
|
${Logging}
|
||||||
|
${StartingPoint}
|
||||||
|
)
|
||||||
|
|
||||||
|
target_precompile_headers(PhanesCore PUBLIC
|
||||||
|
${LoggingPCH}
|
||||||
|
${StartingPointPCH}
|
||||||
|
)
|
||||||
|
|
||||||
|
add_compile_definitions(P_LINUX_BUILD)
|
||||||
|
add_compile_definitions(P_DEBUG)
|
||||||
|
|
||||||
|
|
||||||
|
target_include_directories(PhanesCore PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/../)
|
@ -26,9 +26,17 @@
|
|||||||
|
|
||||||
#define FORCEINLINE __forceinline
|
#define FORCEINLINE __forceinline
|
||||||
|
|
||||||
#elif defined(P_UNIX_BUILD)
|
#elif defined(P_LINUX_BUILD)
|
||||||
|
|
||||||
#error Only Windows is supported at the moment.
|
#ifdef P_DEBUG
|
||||||
|
|
||||||
|
#define P_DEBUGBREAK __builtin_trap();
|
||||||
|
|
||||||
|
#else
|
||||||
|
|
||||||
|
#define P_DEBUGBREAK
|
||||||
|
|
||||||
|
#endif
|
||||||
|
|
||||||
#elif defined(P_ARM_BUILD)
|
#elif defined(P_ARM_BUILD)
|
||||||
|
|
||||||
@ -43,7 +51,6 @@
|
|||||||
|
|
||||||
namespace Phanes
|
namespace Phanes
|
||||||
{
|
{
|
||||||
|
|
||||||
// Alias for shared_ptr
|
// Alias for shared_ptr
|
||||||
template<typename T>
|
template<typename T>
|
||||||
using Ref = std::shared_ptr<T>;
|
using Ref = std::shared_ptr<T>;
|
||||||
@ -65,5 +72,4 @@ namespace Phanes
|
|||||||
{
|
{
|
||||||
return std::make_unique<T>(std::forward<Args>(args)...);
|
return std::make_unique<T>(std::forward<Args>(args)...);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
@ -2,16 +2,11 @@
|
|||||||
|
|
||||||
// --- Logging -------------------------------------
|
// --- Logging -------------------------------------
|
||||||
|
|
||||||
#include "Core/public/Logging/Logging.h"
|
#include "Core/Logging/Logging.h"
|
||||||
|
|
||||||
// --- Starting point ------------------------------
|
// --- Starting point ------------------------------
|
||||||
#include "Core/public/StartingPoint/StartingPoint.h"
|
#include "Core/StartingPoint/StartingPoint.h"
|
||||||
#include "Core/public/StartingPoint/EntryPoint.h"
|
#include "Core/StartingPoint/EntryPoint.h"
|
||||||
|
|
||||||
|
|
||||||
// --- OSAL ----------------------------------------
|
|
||||||
|
|
||||||
#include "Core/public/HAL/PlatformTypes.h"
|
|
||||||
|
|
||||||
|
|
||||||
#ifdef P_USE_NAMESPACE_ALIAS
|
#ifdef P_USE_NAMESPACE_ALIAS
|
||||||
|
12
Engine/Source/Runtime/Core/Logging/CMakeLists.txt
Normal file
12
Engine/Source/Runtime/Core/Logging/CMakeLists.txt
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
cmake_minimum_required(VERSION 3.15...3.30)
|
||||||
|
|
||||||
|
project(PhanesLogging)
|
||||||
|
|
||||||
|
set(Logging
|
||||||
|
Logging/Logging.h
|
||||||
|
Logging/private/Logging.cpp
|
||||||
|
)
|
||||||
|
|
||||||
|
set(LoggingPCH
|
||||||
|
Logging/LoggingPCH.h
|
||||||
|
)
|
@ -1,22 +1,18 @@
|
|||||||
#pragma once
|
#pragma once
|
||||||
|
|
||||||
|
|
||||||
#include "PhanesEnginePCH.h"
|
#include "Core/Logging/LoggingPCH.h"
|
||||||
#include "Core/Core.h"
|
#include "Core/Core.h"
|
||||||
|
|
||||||
#ifndef P_DEBUG
|
|
||||||
#pragma warning(disable : 4251) // Disable STL dll export warning
|
|
||||||
#endif
|
|
||||||
|
|
||||||
namespace Phanes::Core::Logging
|
namespace Phanes::Core::Logging
|
||||||
{
|
{
|
||||||
static std::shared_ptr<spdlog::logger> _PEngineLogger;
|
static Phanes::Ref<spdlog::logger> _PEngineLogger;
|
||||||
static std::shared_ptr<spdlog::logger> _PAppLogger;
|
static Phanes::Ref<spdlog::logger> _PAppLogger;
|
||||||
|
|
||||||
PHANES_CORE void Init();
|
void Init();
|
||||||
|
|
||||||
PHANES_CORE inline std::shared_ptr<spdlog::logger>& PEngineLogger() { return _PEngineLogger; };
|
inline std::shared_ptr<spdlog::logger>& PEngineLogger() { return _PEngineLogger; };
|
||||||
PHANES_CORE inline std::shared_ptr<spdlog::logger>& PAppLogger() { return _PAppLogger; };
|
inline std::shared_ptr<spdlog::logger>& PAppLogger() { return _PAppLogger; };
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
3
Engine/Source/Runtime/Core/Logging/LoggingPCH.h
Normal file
3
Engine/Source/Runtime/Core/Logging/LoggingPCH.h
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
# // spdlog
|
||||||
|
# include <spdlog/sinks/stdout_color_sinks.h>
|
||||||
|
# include <spdlog/spdlog.h>
|
@ -1,6 +1,4 @@
|
|||||||
#include "PhanesEnginePCH.h"
|
#include "Core/Logging/Logging.h"
|
||||||
|
|
||||||
#include "Core/public/Logging/Logging.h"
|
|
||||||
|
|
||||||
void Phanes::Core::Logging::Init()
|
void Phanes::Core::Logging::Init()
|
||||||
{
|
{
|
@ -471,7 +471,7 @@ namespace Phanes::Core::Math {
|
|||||||
/// <summary>
|
/// <summary>
|
||||||
/// Gets componentwise max of both vectors.
|
/// Gets componentwise max of both vectors.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <typeparam name="T">Type of vector</typeparam>
|
/// <typeparam name="T">Type of vector</typeparam> * @note z does not hold the component, but is a reference two the second item in the components array. The varibale exists wholly for convenience.
|
||||||
/// <typeparam name="A">Vector is aligned?</typeparam>
|
/// <typeparam name="A">Vector is aligned?</typeparam>
|
||||||
/// <param name="v1">Vector one</param>
|
/// <param name="v1">Vector one</param>
|
||||||
/// <param name="v2">Vector two</param>
|
/// <param name="v2">Vector two</param>
|
@ -4,11 +4,11 @@
|
|||||||
#define P_FLT_INAC 0.00001f // float inaccuracy (1*10^-5);
|
#define P_FLT_INAC 0.00001f // float inaccuracy (1*10^-5);
|
||||||
#define P_FLT_INAC_SMALL 0.000001f // small float inaccuracy (1*10^-6);
|
#define P_FLT_INAC_SMALL 0.000001f // small float inaccuracy (1*10^-6);
|
||||||
|
|
||||||
#define P_180_PI 57.29577951308232 // (double) 180°/pi;
|
#define P_180_PI 57.29577951308232 // (double) 180<EFBFBD>/pi;
|
||||||
#define P_180_PI_FLT 57.29577951308232f // (float) 180°/pi;
|
#define P_180_PI_FLT 57.29577951308232f // (float) 180<EFBFBD>/pi;
|
||||||
|
|
||||||
#define P_PI_180 0.0174532925199432 // double pi/180°
|
#define P_PI_180 0.0174532925199432 // double pi/180<EFBFBD>
|
||||||
#define P_PI_180_FLT 0.0174532925199432f // (float) pi/180°
|
#define P_PI_180_FLT 0.0174532925199432f // (float) pi/180<EFBFBD>
|
||||||
|
|
||||||
#define P_PI 3.1415926535897932 // PI
|
#define P_PI 3.1415926535897932 // PI
|
||||||
#define P_PI_FLT 3.1415926535897932f // PI
|
#define P_PI_FLT 3.1415926535897932f // PI
|
||||||
@ -48,7 +48,7 @@ namespace Phanes::Core::Math {
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
template<typename T>
|
template<typename T>
|
||||||
inline T Max(T x, T y)
|
constexpr T Max(T x, T y)
|
||||||
{
|
{
|
||||||
return (x > y) ? x : y;
|
return (x > y) ? x : y;
|
||||||
}
|
}
|
||||||
@ -64,7 +64,7 @@ namespace Phanes::Core::Math {
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
template<typename T>
|
template<typename T>
|
||||||
inline T Min(T x, T y)
|
constexpr T Min(T x, T y)
|
||||||
{
|
{
|
||||||
return (x < y) ? x : y;
|
return (x < y) ? x : y;
|
||||||
}
|
}
|
@ -480,7 +480,7 @@ namespace Phanes::Core::Math {
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
template<RealType T, bool S>
|
template<RealType T, bool S>
|
||||||
TMatrix3<T, S> TransposeV(TMatrix3<T, S>& m1);
|
TMatrix3<T, S>& TransposeV(TMatrix3<T, S>& m1);
|
||||||
|
|
||||||
|
|
||||||
// =============== //
|
// =============== //
|
@ -10,7 +10,7 @@
|
|||||||
namespace Phanes::Core::Math
|
namespace Phanes::Core::Math
|
||||||
{
|
{
|
||||||
template<RealType T, bool S>
|
template<RealType T, bool S>
|
||||||
TMatrix3<T, S> TransposeV(TMatrix3<T, S>& m)
|
TMatrix3<T, S>& TransposeV(TMatrix3<T, S>& m)
|
||||||
{
|
{
|
||||||
Detail::compute_mat3_transpose<T, S>::map(m, m);
|
Detail::compute_mat3_transpose<T, S>::map(m, m);
|
||||||
return m;
|
return m;
|
||||||
@ -26,7 +26,7 @@ namespace Phanes::Core::Math
|
|||||||
}
|
}
|
||||||
|
|
||||||
template<RealType T, bool S>
|
template<RealType T, bool S>
|
||||||
TMatrix3<T, S> operator*= (TMatrix3<T, S>& m1, const TMatrix3<T, S>& m2)
|
TMatrix3<T, S>& operator*= (TMatrix3<T, S>& m1, const TMatrix3<T, S>& m2)
|
||||||
{
|
{
|
||||||
TMatrix3<T, S> r;
|
TMatrix3<T, S> r;
|
||||||
Detail::compute_mat3_mul<T, S>::map(r, m1, m2);
|
Detail::compute_mat3_mul<T, S>::map(r, m1, m2);
|
@ -23,7 +23,7 @@ namespace Phanes::Core::Math
|
|||||||
}
|
}
|
||||||
|
|
||||||
template<RealType T, bool S>
|
template<RealType T, bool S>
|
||||||
TMatrix4<T, S> TransposeV(TMatrix4<T, S>& a)
|
TMatrix4<T, S>& TransposeV(TMatrix4<T, S>& a)
|
||||||
{
|
{
|
||||||
Detail::compute_mat4_transpose<T, S>::map(a, a);
|
Detail::compute_mat4_transpose<T, S>::map(a, a);
|
||||||
return a;
|
return a;
|
||||||
@ -44,7 +44,7 @@ namespace Phanes::Core::Math
|
|||||||
}
|
}
|
||||||
|
|
||||||
template<RealType T, bool S>
|
template<RealType T, bool S>
|
||||||
TMatrix4<T, S> operator*= (TMatrix4<T, S>& m1, const TMatrix4<T, S>& m2)
|
TMatrix4<T, S>& operator*= (TMatrix4<T, S>& m1, const TMatrix4<T, S>& m2)
|
||||||
{
|
{
|
||||||
TMatrix4<T, S> r;
|
TMatrix4<T, S> r;
|
||||||
Detail::compute_mat4_mul<T, S>::map(r, m1, m2);
|
Detail::compute_mat4_mul<T, S>::map(r, m1, m2);
|
13
Engine/Source/Runtime/Core/StartingPoint/CMakeLists.txt
Normal file
13
Engine/Source/Runtime/Core/StartingPoint/CMakeLists.txt
Normal file
@ -0,0 +1,13 @@
|
|||||||
|
cmake_minimum_required(VERSION 3.15...3.30)
|
||||||
|
|
||||||
|
project(StartingPoint)
|
||||||
|
|
||||||
|
set(StartingPoint
|
||||||
|
StartingPoint/EntryPoint.h
|
||||||
|
StartingPoint/StartingPoint.h
|
||||||
|
StartingPoint/private/StartingPoint.cpp
|
||||||
|
)
|
||||||
|
|
||||||
|
set(StartingPointPCH
|
||||||
|
StartingPoint/StartingPointPCH.h
|
||||||
|
)
|
@ -1,7 +1,7 @@
|
|||||||
#pragma once
|
#pragma once
|
||||||
// Entry point for Phanes game
|
// Entry point for Phanes game
|
||||||
|
|
||||||
#if defined(P_WIN_BUILD)
|
#if defined(P_LINUX_BUILD)
|
||||||
|
|
||||||
extern Phanes::Core::Application::PhanesProject* Phanes::Core::Application::CreatePhanesGame();
|
extern Phanes::Core::Application::PhanesProject* Phanes::Core::Application::CreatePhanesGame();
|
||||||
|
|
@ -1,12 +1,13 @@
|
|||||||
#pragma once
|
#pragma once
|
||||||
|
|
||||||
|
#include "StartingPointPCH.h"
|
||||||
#include "Core/Core.h"
|
#include "Core/Core.h"
|
||||||
|
|
||||||
// Entrypoint class for any Phanes game.
|
// Entrypoint class for any Phanes game.
|
||||||
|
|
||||||
namespace Phanes::Core::Application
|
namespace Phanes::Core::Application
|
||||||
{
|
{
|
||||||
class PHANES_CORE PhanesProject
|
class PhanesProject
|
||||||
{
|
{
|
||||||
|
|
||||||
private:
|
private:
|
||||||
@ -27,7 +28,7 @@ namespace Phanes::Core::Application
|
|||||||
* Getter for project name;
|
* Getter for project name;
|
||||||
*/
|
*/
|
||||||
|
|
||||||
FORCEINLINE std::string GetName();
|
std::string GetName();
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
@ -0,0 +1,6 @@
|
|||||||
|
#pragma once
|
||||||
|
|
||||||
|
#include <string>
|
||||||
|
#include <iostream>
|
||||||
|
#include <thread>
|
||||||
|
#include <chrono>
|
@ -1,19 +1,9 @@
|
|||||||
#include "PhanesEnginePCH.h"
|
#include "Core/StartingPoint/StartingPoint.h"
|
||||||
|
|
||||||
#define P_USE_NAMESPACE_ALIAS
|
|
||||||
#define P_TEST
|
|
||||||
|
|
||||||
#include "Core/public/StartingPoint/StartingPoint.h"
|
|
||||||
|
|
||||||
static void IdleMsg()
|
static void IdleMsg()
|
||||||
{
|
{
|
||||||
HANDLE hConsole = GetStdHandle(STD_OUTPUT_HANDLE);
|
|
||||||
SetConsoleTextAttribute(hConsole, 12);
|
|
||||||
|
|
||||||
std::cout << "\n\nWelcome to PhanesEngine!" << std::endl << std::endl;
|
std::cout << "\n\nWelcome to PhanesEngine!" << std::endl << std::endl;
|
||||||
|
|
||||||
SetConsoleTextAttribute(hConsole, 15);
|
|
||||||
|
|
||||||
std::this_thread::sleep_for(std::chrono::seconds(5));
|
std::this_thread::sleep_for(std::chrono::seconds(5));
|
||||||
|
|
||||||
std::cout << "It's silent..." << std::endl << std::endl;
|
std::cout << "It's silent..." << std::endl << std::endl;
|
@ -24,12 +24,3 @@
|
|||||||
# include <windows.h>
|
# include <windows.h>
|
||||||
#
|
#
|
||||||
# endif
|
# endif
|
||||||
#
|
|
||||||
#
|
|
||||||
#
|
|
||||||
# // spdlog
|
|
||||||
# include <spdlog/sinks/stdout_color_sinks.h>
|
|
||||||
# include <spdlog/spdlog.h>
|
|
||||||
#
|
|
||||||
# // Local PCH
|
|
||||||
# include "Core/public/Math/MathPCH.h"
|
|
@ -1,4 +0,0 @@
|
|||||||
cmake_minimum_required(2.8)
|
|
||||||
|
|
||||||
project(MathTestFPU)
|
|
||||||
|
|
@ -1,4 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
|
||||||
<packages>
|
|
||||||
<package id="Microsoft.googletest.v140.windesktop.msvcstl.static.rt-dyn" version="1.8.1.7" targetFramework="native" />
|
|
||||||
</packages>
|
|
Loading…
x
Reference in New Issue
Block a user