[nostalgia,olympic] Cleanup CMake
This commit is contained in:
		@@ -11,18 +11,11 @@ endif()
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
include(deps/buildcore/base.cmake)
 | 
					include(deps/buildcore/base.cmake)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
set(NOSTALGIA_BUILD_PLAYER ON CACHE BOOL "Build Player")
 | 
					 | 
				
			||||||
set(NOSTALGIA_BUILD_STUDIO ON CACHE BOOL "Build Studio")
 | 
					 | 
				
			||||||
set(OLYMPIC_BUILD_STUDIO ON CACHE BOOL "Build Studio")
 | 
					 | 
				
			||||||
set(OX_ENABLE_TRACEHOOK OFF CACHE BOOL "Generate OxTraceHook shared library for uprobes")
 | 
					set(OX_ENABLE_TRACEHOOK OFF CACHE BOOL "Generate OxTraceHook shared library for uprobes")
 | 
				
			||||||
 | 
					
 | 
				
			||||||
if(BUILDCORE_TARGET STREQUAL "gba")
 | 
					if(BUILDCORE_TARGET STREQUAL "gba")
 | 
				
			||||||
	set(NOSTALGIA_BUILD_STUDIO OFF)
 | 
					 | 
				
			||||||
	set(OLYMPIC_BUILD_STUDIO OFF)
 | 
					 | 
				
			||||||
	set(TURBINE_BUILD_TYPE "GBA")
 | 
					 | 
				
			||||||
	include(deps/gbabuildcore/base.cmake)
 | 
						include(deps/gbabuildcore/base.cmake)
 | 
				
			||||||
else()
 | 
					else()
 | 
				
			||||||
	set(TURBINE_BUILD_TYPE "Native")
 | 
					 | 
				
			||||||
	set(CMAKE_POSITION_INDEPENDENT_CODE ON)
 | 
						set(CMAKE_POSITION_INDEPENDENT_CODE ON)
 | 
				
			||||||
endif()
 | 
					endif()
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -49,7 +42,6 @@ add_subdirectory(deps/teagba)
 | 
				
			|||||||
if(NOT BUILDCORE_TARGET STREQUAL "gba")
 | 
					if(NOT BUILDCORE_TARGET STREQUAL "gba")
 | 
				
			||||||
	include_directories(
 | 
						include_directories(
 | 
				
			||||||
		SYSTEM
 | 
							SYSTEM
 | 
				
			||||||
			deps/glfw/deps
 | 
					 | 
				
			||||||
			deps/glfw/include
 | 
								deps/glfw/include
 | 
				
			||||||
			deps/imgui
 | 
								deps/imgui
 | 
				
			||||||
			deps/imgui/backends
 | 
								deps/imgui/backends
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,6 +1,15 @@
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
 | 
					project(nostalgia CXX)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#project packages
 | 
					#project packages
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					set(NOSTALGIA_BUILD_PLAYER ON CACHE BOOL "Build Player")
 | 
				
			||||||
 | 
					set(NOSTALGIA_BUILD_STUDIO ON CACHE BOOL "Build Studio")
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					if(BUILDCORE_TARGET STREQUAL "gba")
 | 
				
			||||||
 | 
						set(NOSTALGIA_BUILD_STUDIO OFF)
 | 
				
			||||||
 | 
					endif()
 | 
				
			||||||
 | 
					
 | 
				
			||||||
if(APPLE)
 | 
					if(APPLE)
 | 
				
			||||||
	set(CMAKE_INSTALL_NAME_DIR "@executable_path/../Library/nostalgia")
 | 
						set(CMAKE_INSTALL_NAME_DIR "@executable_path/../Library/nostalgia")
 | 
				
			||||||
	set(NOSTALGIA_DIST_BIN              NostalgiaStudio.app/Contents/MacOS)
 | 
						set(NOSTALGIA_DIST_BIN              NostalgiaStudio.app/Contents/MacOS)
 | 
				
			||||||
@@ -17,13 +26,13 @@ endif()
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
add_subdirectory(modules)
 | 
					add_subdirectory(modules)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
if(NOSTALGIA_BUILD_PLAYER)
 | 
					if(${NOSTALGIA_BUILD_PLAYER})
 | 
				
			||||||
	add_subdirectory(player)
 | 
						add_subdirectory(player)
 | 
				
			||||||
endif()
 | 
					endif()
 | 
				
			||||||
 | 
					
 | 
				
			||||||
if(TURBINE_BUILD_TYPE STREQUAL "Native")
 | 
					if(NOT BUILDCORE_TARGET STREQUAL "gba")
 | 
				
			||||||
	add_subdirectory(tools)
 | 
						add_subdirectory(tools)
 | 
				
			||||||
	if(NOSTALGIA_BUILD_STUDIO)
 | 
						if(${NOSTALGIA_BUILD_STUDIO})
 | 
				
			||||||
		add_subdirectory(studio)
 | 
							add_subdirectory(studio)
 | 
				
			||||||
	endif()
 | 
						endif()
 | 
				
			||||||
endif()
 | 
					endif()
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -23,26 +23,24 @@ install(
 | 
				
			|||||||
		include/nostalgia/modules
 | 
							include/nostalgia/modules
 | 
				
			||||||
)
 | 
					)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
if(${OLYMPIC_BUILD_STUDIO})
 | 
					# Studio
 | 
				
			||||||
	# Studio
 | 
					if(NOSTALGIA_BUILD_STUDIO)
 | 
				
			||||||
	if(TURBINE_BUILD_TYPE STREQUAL "Native")
 | 
						add_library(
 | 
				
			||||||
		add_library(
 | 
							NostalgiaStudioModules STATIC
 | 
				
			||||||
			NostalgiaStudioModules STATIC
 | 
								studiomodules.cpp
 | 
				
			||||||
				studiomodules.cpp
 | 
						)
 | 
				
			||||||
		)
 | 
						target_link_libraries(
 | 
				
			||||||
		target_link_libraries(
 | 
							NostalgiaStudioModules PUBLIC
 | 
				
			||||||
			NostalgiaStudioModules PUBLIC
 | 
								StudioAppLib
 | 
				
			||||||
				StudioAppLib
 | 
								NostalgiaCore-Studio-ImGui
 | 
				
			||||||
				NostalgiaCore-Studio-ImGui
 | 
								NostalgiaScene-Studio
 | 
				
			||||||
				NostalgiaScene-Studio
 | 
						)
 | 
				
			||||||
		)
 | 
						install(
 | 
				
			||||||
		install(
 | 
							 FILES
 | 
				
			||||||
			FILES
 | 
								studiomodules.hpp
 | 
				
			||||||
				studiomodules.hpp
 | 
							 DESTINATION
 | 
				
			||||||
			DESTINATION
 | 
								include/nostalgia/modules
 | 
				
			||||||
				include/nostalgia/modules
 | 
						)
 | 
				
			||||||
		)
 | 
					 | 
				
			||||||
	endif()
 | 
					 | 
				
			||||||
endif()
 | 
					endif()
 | 
				
			||||||
 | 
					
 | 
				
			||||||
add_library(NostalgiaProfile INTERFACE)
 | 
					add_library(NostalgiaProfile INTERFACE)
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,5 +1,6 @@
 | 
				
			|||||||
add_subdirectory(src)
 | 
					add_subdirectory(src)
 | 
				
			||||||
if(NOT TURBINE_BUILD_TYPE STREQUAL "GBA")
 | 
					
 | 
				
			||||||
 | 
					if(NOT BUILDCORE_TARGET STREQUAL "gba")
 | 
				
			||||||
	add_subdirectory(test)
 | 
						add_subdirectory(test)
 | 
				
			||||||
endif()
 | 
					endif()
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -5,7 +5,7 @@ add_library(
 | 
				
			|||||||
)
 | 
					)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
add_subdirectory(gba)
 | 
					add_subdirectory(gba)
 | 
				
			||||||
if(NOT TURBINE_BUILD_TYPE STREQUAL "GBA")
 | 
					if(NOT BUILDCORE_TARGET STREQUAL "gba")
 | 
				
			||||||
	add_subdirectory(opengl)
 | 
						add_subdirectory(opengl)
 | 
				
			||||||
endif()
 | 
					endif()
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -15,7 +15,7 @@ target_link_libraries(
 | 
				
			|||||||
		Turbine
 | 
							Turbine
 | 
				
			||||||
)
 | 
					)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
if(TURBINE_BUILD_TYPE STREQUAL "GBA")
 | 
					if(BUILDCORE_TARGET STREQUAL "gba")
 | 
				
			||||||
	set_source_files_properties(gfx.cpp PROPERTIES COMPILE_FLAGS -marm)
 | 
						set_source_files_properties(gfx.cpp PROPERTIES COMPILE_FLAGS -marm)
 | 
				
			||||||
	target_link_libraries(NostalgiaCore PUBLIC NostalgiaCore-GBA)
 | 
						target_link_libraries(NostalgiaCore PUBLIC NostalgiaCore-GBA)
 | 
				
			||||||
endif()
 | 
					endif()
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -2,8 +2,6 @@
 | 
				
			|||||||
 * Copyright 2016 - 2023 Gary Talent (gary@drinkingtea.net). All rights reserved.
 | 
					 * Copyright 2016 - 2023 Gary Talent (gary@drinkingtea.net). All rights reserved.
 | 
				
			||||||
 */
 | 
					 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#include <keel/module.hpp>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#include <studioapp/studioapp.hpp>
 | 
					#include <studioapp/studioapp.hpp>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#include <nostalgia/core/studiomodule.hpp>
 | 
					#include <nostalgia/core/studiomodule.hpp>
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,3 +1,18 @@
 | 
				
			|||||||
 | 
					if(BUILDCORE_TARGET STREQUAL "gba")
 | 
				
			||||||
 | 
					    project(Olympic ASM CXX)
 | 
				
			||||||
 | 
					else()
 | 
				
			||||||
 | 
					    project(Olympic CXX)
 | 
				
			||||||
 | 
					endif()
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					set(OLYMPIC_BUILD_STUDIO ON CACHE BOOL "Build Studio")
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					if(BUILDCORE_TARGET STREQUAL "gba")
 | 
				
			||||||
 | 
					    set(OLYMPIC_BUILD_STUDIO OFF)
 | 
				
			||||||
 | 
					    set(TURBINE_BUILD_TYPE "GBA")
 | 
				
			||||||
 | 
					else()
 | 
				
			||||||
 | 
					    set(TURBINE_BUILD_TYPE "Native")
 | 
				
			||||||
 | 
					endif()
 | 
				
			||||||
 | 
					
 | 
				
			||||||
add_subdirectory(applib)
 | 
					add_subdirectory(applib)
 | 
				
			||||||
add_subdirectory(keel)
 | 
					add_subdirectory(keel)
 | 
				
			||||||
add_subdirectory(turbine)
 | 
					add_subdirectory(turbine)
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -52,7 +52,7 @@ void NewMenu::draw(turbine::Context &ctx) noexcept {
 | 
				
			|||||||
	}
 | 
						}
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
void NewMenu::addItemMaker(ox::UniquePtr<studio::ItemMaker> im) noexcept {
 | 
					void NewMenu::addItemMaker(ox::UniquePtr<studio::ItemMaker> &&im) noexcept {
 | 
				
			||||||
	m_types.emplace_back(std::move(im));
 | 
						m_types.emplace_back(std::move(im));
 | 
				
			||||||
	std::sort(
 | 
						std::sort(
 | 
				
			||||||
			m_types.begin(), m_types.end(),
 | 
								m_types.begin(), m_types.end(),
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -51,7 +51,7 @@ class NewMenu: public studio::Popup {
 | 
				
			|||||||
		template<typename T>
 | 
							template<typename T>
 | 
				
			||||||
		void addItemType(ox::String name, ox::String parentDir, ox::String fileExt, ox::ClawFormat pFmt = ox::ClawFormat::Metal) noexcept;
 | 
							void addItemType(ox::String name, ox::String parentDir, ox::String fileExt, ox::ClawFormat pFmt = ox::ClawFormat::Metal) noexcept;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		void addItemMaker(ox::UniquePtr<studio::ItemMaker> im) noexcept;
 | 
							void addItemMaker(ox::UniquePtr<studio::ItemMaker> &&im) noexcept;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	private:
 | 
						private:
 | 
				
			||||||
		void drawNewItemType(turbine::Context &ctx) noexcept;
 | 
							void drawNewItemType(turbine::Context &ctx) noexcept;
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -44,7 +44,7 @@ void ProjectExplorer::draw(turbine::Context &ctx) noexcept {
 | 
				
			|||||||
	ImGui::EndChild();
 | 
						ImGui::EndChild();
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
void ProjectExplorer::setModel(ox::UPtr<ProjectTreeModel> model) noexcept {
 | 
					void ProjectExplorer::setModel(ox::UPtr<ProjectTreeModel> &&model) noexcept {
 | 
				
			||||||
	m_treeModel = std::move(model);
 | 
						m_treeModel = std::move(model);
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -21,7 +21,7 @@ class ProjectExplorer: public studio::Widget {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
		void draw(turbine::Context &ctx) noexcept override;
 | 
							void draw(turbine::Context &ctx) noexcept override;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		void setModel(ox::UPtr<ProjectTreeModel> model) noexcept;
 | 
							void setModel(ox::UPtr<ProjectTreeModel> &&model) noexcept;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		ox::Error refreshProjectTreeModel(ox::CRStringView = {}) noexcept;
 | 
							ox::Error refreshProjectTreeModel(ox::CRStringView = {}) noexcept;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -44,7 +44,7 @@ void ProjectTreeModel::draw(turbine::Context &ctx) const noexcept {
 | 
				
			|||||||
	}
 | 
						}
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
void ProjectTreeModel::setChildren(ox::Vector<ox::UniquePtr<ProjectTreeModel>> children) noexcept {
 | 
					void ProjectTreeModel::setChildren(ox::Vector<ox::UPtr<ProjectTreeModel>> children) noexcept {
 | 
				
			||||||
	m_children = std::move(children);
 | 
						m_children = std::move(children);
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -16,7 +16,7 @@ class ProjectTreeModel {
 | 
				
			|||||||
		class ProjectExplorer &m_explorer;
 | 
							class ProjectExplorer &m_explorer;
 | 
				
			||||||
		ProjectTreeModel *m_parent = nullptr;
 | 
							ProjectTreeModel *m_parent = nullptr;
 | 
				
			||||||
		ox::String m_name;
 | 
							ox::String m_name;
 | 
				
			||||||
		ox::Vector<ox::UniquePtr<ProjectTreeModel>> m_children;
 | 
							ox::Vector<ox::UPtr<ProjectTreeModel>> m_children;
 | 
				
			||||||
	public:
 | 
						public:
 | 
				
			||||||
		explicit ProjectTreeModel(class ProjectExplorer &explorer, ox::String name,
 | 
							explicit ProjectTreeModel(class ProjectExplorer &explorer, ox::String name,
 | 
				
			||||||
		                          ProjectTreeModel *parent = nullptr) noexcept;
 | 
							                          ProjectTreeModel *parent = nullptr) noexcept;
 | 
				
			||||||
@@ -25,7 +25,7 @@ class ProjectTreeModel {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
		void draw(turbine::Context &ctx) const noexcept;
 | 
							void draw(turbine::Context &ctx) const noexcept;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		void setChildren(ox::Vector<ox::UniquePtr<ProjectTreeModel>> children) noexcept;
 | 
							void setChildren(ox::Vector<ox::UPtr<ProjectTreeModel>> children) noexcept;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	private:
 | 
						private:
 | 
				
			||||||
		[[nodiscard]]
 | 
							[[nodiscard]]
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -30,8 +30,8 @@ class ItemMaker {
 | 
				
			|||||||
template<typename T>
 | 
					template<typename T>
 | 
				
			||||||
class ItemMakerT: public ItemMaker {
 | 
					class ItemMakerT: public ItemMaker {
 | 
				
			||||||
	private:
 | 
						private:
 | 
				
			||||||
		T const item;
 | 
							T const m_item;
 | 
				
			||||||
		ox::ClawFormat const fmt;
 | 
							ox::ClawFormat const m_fmt;
 | 
				
			||||||
	public:
 | 
						public:
 | 
				
			||||||
		constexpr ItemMakerT(
 | 
							constexpr ItemMakerT(
 | 
				
			||||||
				ox::StringView pDisplayName,
 | 
									ox::StringView pDisplayName,
 | 
				
			||||||
@@ -39,7 +39,7 @@ class ItemMakerT: public ItemMaker {
 | 
				
			|||||||
				ox::StringView fileExt,
 | 
									ox::StringView fileExt,
 | 
				
			||||||
				ox::ClawFormat pFmt = ox::ClawFormat::Metal) noexcept:
 | 
									ox::ClawFormat pFmt = ox::ClawFormat::Metal) noexcept:
 | 
				
			||||||
			ItemMaker(pDisplayName, pParentDir, fileExt),
 | 
								ItemMaker(pDisplayName, pParentDir, fileExt),
 | 
				
			||||||
			fmt(pFmt) {
 | 
								m_fmt(pFmt) {
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
		constexpr ItemMakerT(
 | 
							constexpr ItemMakerT(
 | 
				
			||||||
				ox::StringView pDisplayName,
 | 
									ox::StringView pDisplayName,
 | 
				
			||||||
@@ -48,8 +48,8 @@ class ItemMakerT: public ItemMaker {
 | 
				
			|||||||
				T pItem,
 | 
									T pItem,
 | 
				
			||||||
				ox::ClawFormat pFmt) noexcept:
 | 
									ox::ClawFormat pFmt) noexcept:
 | 
				
			||||||
			ItemMaker(pDisplayName, pParentDir, fileExt),
 | 
								ItemMaker(pDisplayName, pParentDir, fileExt),
 | 
				
			||||||
			item(pItem),
 | 
								m_item(pItem),
 | 
				
			||||||
			fmt(pFmt) {
 | 
								m_fmt(pFmt) {
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
		constexpr ItemMakerT(
 | 
							constexpr ItemMakerT(
 | 
				
			||||||
				ox::StringView pDisplayName,
 | 
									ox::StringView pDisplayName,
 | 
				
			||||||
@@ -58,14 +58,14 @@ class ItemMakerT: public ItemMaker {
 | 
				
			|||||||
				T &&pItem,
 | 
									T &&pItem,
 | 
				
			||||||
				ox::ClawFormat pFmt) noexcept:
 | 
									ox::ClawFormat pFmt) noexcept:
 | 
				
			||||||
			 ItemMaker(pDisplayName, pParentDir, fileExt),
 | 
								 ItemMaker(pDisplayName, pParentDir, fileExt),
 | 
				
			||||||
			 item(std::move(pItem)),
 | 
								 m_item(std::move(pItem)),
 | 
				
			||||||
			 fmt(pFmt) {
 | 
								 m_fmt(pFmt) {
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
		ox::Error write(turbine::Context &ctx, ox::CRStringView pName) const noexcept override {
 | 
							ox::Error write(turbine::Context &ctx, ox::CRStringView pName) const noexcept override {
 | 
				
			||||||
			auto const path = ox::sfmt("/{}/{}.{}", parentDir, pName, fileExt);
 | 
								auto const path = ox::sfmt("/{}/{}.{}", parentDir, pName, fileExt);
 | 
				
			||||||
			auto sctx = turbine::applicationData<studio::StudioContext>(ctx);
 | 
								auto sctx = turbine::applicationData<studio::StudioContext>(ctx);
 | 
				
			||||||
			keel::createUuidMapping(keelCtx(ctx), path, ox::UUID::generate().unwrap());
 | 
								keel::createUuidMapping(keelCtx(ctx), path, ox::UUID::generate().unwrap());
 | 
				
			||||||
			return sctx->project->writeObj(path, item, fmt);
 | 
								return sctx->project->writeObj(path, m_item, m_fmt);
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user