Add basic project setup with engine and editor subdirectories

This commit is contained in:
2025-02-04 10:28:18 +10:00
parent f9c7a029a6
commit f6bcee45bb
10 changed files with 188 additions and 44 deletions

24
engine/CMakeLists.txt Normal file
View File

@@ -0,0 +1,24 @@
# Copyright (c) 2025, Jayden Grubb <contact@jaydengrubb.com>
# SPDX-License-Identifier: BSD-3-Clause
set(SRC
test.cpp
)
list(TRANSFORM SRC PREPEND ${CMAKE_CURRENT_SOURCE_DIR}/src/)
include_directories(
${CMAKE_CURRENT_SOURCE_DIR}/include
${CMAKE_CURRENT_SOURCE_DIR}/src
${Vulkan_INCLUDE_DIRS}
)
if (NOVA_ENGINE_SHARED)
add_library(nova SHARED ${SRC})
target_compile_definitions(nova PRIVATE
NOVA_DLL_EXPORT
)
endif ()
if (NOVA_ENGINE_STATIC)
add_library(nova_static STATIC ${SRC})
endif ()

25
engine/include/nova/api.h Normal file
View File

@@ -0,0 +1,25 @@
/**
* Copyright (c) 2025, Jayden Grubb <contact@jaydengrubb.com>
*
* SPDX-License-Identifier: BSD-3-Clause
*/
#pragma once
#ifndef NOVA_API
#ifdef WIN32
#ifdef NOVA_DLL_EXPORT
#define NOVA_API __declspec(dllexport)
#elif NOVA_DLL_IMPORT
#define NOVA_API __declspec(dllimport)
#else
#define NOVA_API
#endif
#else
#ifdef NOVA_DLL_EXPORT
#define NOVA_API __attribute__((visibility("default")))
#else
#define NOVA_API
#endif
#endif
#endif

View File

@@ -0,0 +1,11 @@
/**
* Copyright (c) 2025, Jayden Grubb <contact@jaydengrubb.com>
*
* SPDX-License-Identifier: BSD-3-Clause
*/
#pragma once
#include <nova/api.h>
NOVA_API void func();

13
engine/src/test.cpp Normal file
View File

@@ -0,0 +1,13 @@
/**
* Copyright (c) 2025, Jayden Grubb <contact@jaydengrubb.com>
*
* SPDX-License-Identifier: BSD-3-Clause
*/
#include <nova/test.h>
#include <cstdio>
void func() {
std::printf("Hello, world!\n");
}