1
0
Fork 0
mirror of https://github.com/gwm17/Specter.git synced 2024-11-22 18:28:52 -05:00

Fix issues with asset guarantees. Remove unnecessary bloat in SpecProject CMakeLists

This commit is contained in:
Gordon McCann 2022-11-10 20:09:06 -05:00
parent 897827ffb5
commit 0cfeeabe54
6 changed files with 17 additions and 31 deletions

View File

@ -23,28 +23,12 @@ target_sources(SpecProject PRIVATE
./src/SPSInputLayer.h ./src/SPSInputLayer.h
) )
set(THREADS_PREFER_PTHREAD_FLAG On) target_link_libraries(SpecProject PRIVATE Specter)
find_package(Threads REQUIRED)
target_link_libraries(SpecProject PRIVATE Specter Threads::Threads glad glfw imgui)
if(APPLE)
target_link_libraries(SpecProject PRIVATE "-framework Cocoa" "-framework CoreVideo" "-framework IOKit" "-framework OpenGL" "-framework Carbon" ${CMAKE_DL_LIBS})
target_compile_definitions(SpecProject PRIVATE SPEC_APPLE)
elseif(UNIX)
target_link_libraries(SpecProject PRIVATE libGL.so libX11.so ${CMAKE_DL_LIBS})
target_compile_definitions(SpecProject PRIVATE SPEC_LINUX)
elseif(MSVC)
target_link_libraries(SpecProject PRIVATE opengl32.lib)
target_compile_definitions(SpecProject PRIVATE SPEC_WINDOWS)
endif()
if(CMAKE_BUILD_TYPE STREQUAL "Release")
target_compile_definitions(SpecProject PRIVATE SPEC_RELEASE)
elseif(CMAKE_BUILD_TYPE STREQUAL "Debug")
target_compile_definitions(SpecProject PRIVATE SPEC_DEBUG)
endif()
set_target_properties(SpecProject PROPERTIES RUNTIME_OUTPUT_DIRECTORY ${SPECTER_BINARY_DIR}) set_target_properties(SpecProject PROPERTIES RUNTIME_OUTPUT_DIRECTORY ${SPECTER_BINARY_DIR})
#No longer needed, but maybe come back if I don't like the programatic solution add_custom_command(TARGET SpecProject
#add_custom_command(TARGET SpecProject POST_BUILD COMMAND ${CMAKE_COMMAND} -E copy_directory ${CMAKE_CURRENT_SOURCE_DIR}/Assets ${SPECTER_BINARY_DIR}/Assets) POST_BUILD COMMAND ${CMAKE_COMMAND} -E create_symlink
${CMAKE_CURRENT_SOURCE_DIR}/Assets
${SPECTER_BINARY_DIR}/Assets
)

View File

@ -29,14 +29,11 @@ Specter::Application* Specter::CreateApplication(const ApplicationArgs& args) {
int main(int argc, const char** argv) int main(int argc, const char** argv)
{ {
Specter::Logger::Init(); Specter::Logger::Init();
SPEC_TRACE("Logger Initialized!"); SPEC_INFO("Logger Initialized");
Specter::ApplicationArgs args; Specter::ApplicationArgs args;
args.name = "SPS Specter"; args.name = "SPS Specter";
if (std::filesystem::current_path().string().find("SpecProject") != std::string::npos) args.runtimePath = std::filesystem::current_path();
args.runtimePath = ""; //Dont modify runtime path, already points to SpecProject
else
args.runtimePath = "../SpecProject"; //Assume we're attempting to run from bin dir? Technically would also work for any new subproject made by same method as SpecProject
SPEC_PROFILE_BEGIN_SESSION("Startup", "navprofile_startup.json"); SPEC_PROFILE_BEGIN_SESSION("Startup", "navprofile_startup.json");
auto app = Specter::CreateApplication(args); auto app = Specter::CreateApplication(args);

View File

@ -21,6 +21,7 @@
#include <vector> #include <vector>
#include <unordered_map> #include <unordered_map>
#include <unordered_set> #include <unordered_set>
#include <filesystem>
#include <cstdint> #include <cstdint>

View File

@ -25,9 +25,12 @@ namespace Specter {
s_instance = this; s_instance = this;
//Set the runtime path so that we can find our assets //Check that there is an Assets directory in our runtime
if(!m_args.runtimePath.empty()) std::filesystem::path assetPath = args.runtimePath / "Assets";
std::filesystem::current_path(m_args.runtimePath); if(!std::filesystem::exists(assetPath))
{
SPEC_WARN("No Assets directory detected in runtime path!");
}
SPEC_INFO("Runtime Directory: {0}", std::filesystem::current_path().string()); SPEC_INFO("Runtime Directory: {0}", std::filesystem::current_path().string());

View File

@ -28,7 +28,7 @@ namespace Specter {
struct ApplicationArgs struct ApplicationArgs
{ {
std::string name = ""; std::string name = "";
std::string runtimePath = ""; std::filesystem::path runtimePath = "";
}; };
class Application class Application

View File

@ -13,6 +13,7 @@
#include <vector> #include <vector>
#include <unordered_map> #include <unordered_map>
#include <unordered_set> #include <unordered_set>
#include <filesystem>
#include <cstdint> #include <cstdint>