init commit

This commit is contained in:
2025-11-15 14:14:20 +08:00
commit 0e48af235d
13 changed files with 196 additions and 0 deletions

19
.gitignore vendored Normal file
View File

@ -0,0 +1,19 @@
# Directories
.vs/
.vscode/
bin/
bin-int/
.idea/
out/
# Clion
#cmake-build-debug/
#cmake-build-release/
cmake-build-*/
# directories
build/
# Files
*.user

21
CMakeLists.txt Normal file
View File

@ -0,0 +1,21 @@
cmake_minimum_required(VERSION 3.31)
project(Prism)
set(CMAKE_CXX_STANDARD 20)
set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin-int)
set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin-int)
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin)
# set MSVC output directory
if(MSVC)
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY_DEBUG ${CMAKE_RUNTIME_OUTPUT_DIRECTORY})
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY_RELEASE ${CMAKE_RUNTIME_OUTPUT_DIRECTORY})
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY_RELWITHDEBINFO ${CMAKE_RUNTIME_OUTPUT_DIRECTORY})
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY_MINSIZEREL ${CMAKE_RUNTIME_OUTPUT_DIRECTORY})
endif ()
add_subdirectory(Prism)
add_subdirectory(Sandbox)
add_subdirectory(Editor)

7
Editor/CMakeLists.txt Normal file
View File

@ -0,0 +1,7 @@
project(PrismEditor)
file(GLOB_RECURSE SRC_SOURCE ./**.cpp)
add_executable(${PROJECT_NAME} ${SRC_SOURCE})
target_link_libraries(${PROJECT_NAME} PRIVATE Prism-shared)

12
Editor/Editor/Editor.cpp Normal file
View File

@ -0,0 +1,12 @@
//
// Created by sfd on 25-11-15.
//
#include "Editor.h"
#include <iostream>
int main()
{
std::cout << "Hello World!\n";
}

10
Editor/Editor/Editor.h Normal file
View File

@ -0,0 +1,10 @@
//
// Created by sfd on 25-11-15.
//
#ifndef EDITOR_H
#define EDITOR_H
#endif //EDITOR_H

43
Prism/CMakeLists.txt Normal file
View File

@ -0,0 +1,43 @@
project(Prism)
file(GLOB_RECURSE SRC_SOURCE src/**.cpp)
# static library
set(STATIC_LIBRARY ${PROJECT_NAME}-static)
add_library(${STATIC_LIBRARY} STATIC ${SRC_SOURCE})
target_compile_definitions(${STATIC_LIBRARY} PRIVATE PRISM_STATIC)
target_include_directories(${STATIC_LIBRARY} PUBLIC
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}>
)
set_target_properties(${STATIC_LIBRARY} PROPERTIES
OUTPUT_NAME ${PROJECT_NAME}
ARCHIVE_OUTPUT_NAME ${PROJECT_NAME}
)
# shared library
set(SHARED_LIBRARY ${PROJECT_NAME}-shared)
add_library(${SHARED_LIBRARY} SHARED ${SRC_SOURCE})
target_compile_definitions(${SHARED_LIBRARY} PRIVATE PRISM_SHARED BUILD_PRISM_DLL)
target_include_directories(${SHARED_LIBRARY} PUBLIC
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}>
)
set_target_properties(${SHARED_LIBRARY} PROPERTIES
OUTPUT_NAME ${PROJECT_NAME}d
LIBRARY_OUTPUT_NAME ${PROJECT_NAME}d
)
# alias
add_library(Prism::static ALIAS Prism-static)
add_library(Prism::shared ALIAS Prism-shared)
add_library(Prism ALIAS Prism-shared)

8
Prism/src/Prism.h Normal file
View File

@ -0,0 +1,8 @@
//
// Created by sfd on 25-11-15.
//
#ifndef PRISM_H
#define PRISM_H
#endif //PRISM_H

View File

@ -0,0 +1,12 @@
//
// Created by sfd on 25-11-15.
//
#include "Application.h"
namespace Prism
{
Application::Application()
{
}
}

View File

@ -0,0 +1,20 @@
//
// Created by sfd on 25-11-15.
//
#ifndef APPLICATION_H
#define APPLICATION_H
#include "Core/Core.h"
namespace Prism
{
class PRISM_API Application
{
public:
Application();
};
}
#endif //APPLICATION_H

View File

@ -0,0 +1,19 @@
//
// Created by sfd on 25-11-15.
//
#ifndef CORE_H
#define CORE_H
#if defined(PRISM_SHARED) && defined(_WIN32)
#ifdef BUILD_PRISM_DLL
#define PRISM_API __declspec(dllexport)
#else
#define PRISM_API __declspec(dllimport)
#endif
#else
#define PRISM_API
#endif
#endif //CORE_H

8
Sandbox/CMakeLists.txt Normal file
View File

@ -0,0 +1,8 @@
project(Sandbox)
file(GLOB_RECURSE SRC_SOURCE ./**.cpp)
add_executable(${PROJECT_NAME} ${SRC_SOURCE})
target_link_libraries(${PROJECT_NAME} PRIVATE Prism)

View File

@ -0,0 +1,5 @@
//
// Created by sfd on 25-11-15.
//
#include "Sandbox.h"

12
Sandbox/Sandbox/Sandbox.h Normal file
View File

@ -0,0 +1,12 @@
//
// Created by sfd on 25-11-15.
//
#ifndef SANDBOX_H
#define SANDBOX_H
#endif //SANDBOX_H