From b22c5e69b62c37e349bd18e502986eb1cb10e481 Mon Sep 17 00:00:00 2001 From: Jack Andersen Date: Mon, 6 Jul 2015 17:24:09 -1000 Subject: [PATCH] Added CMakeLists.txt --- hecl/CMakeLists.txt | 9 +++++++++ hecl/driver/CMakeLists.txt | 2 ++ hecl/extern/Athena | 2 +- hecl/extern/CMakeLists.txt | 6 ++++++ hecl/extern/LogVisor | 2 +- hecl/extern/RetroCommon | 2 +- hecl/extern/libpng/CMakeLists.txt | 24 ++++++++++++++++++++++++ hecl/include/HECL/Database.hpp | 17 ++++++++++++++++- hecl/lib/CMakeLists.txt | 14 ++++++++++++++ hecl/lib/backend/CMakeLists.txt | 1 + hecl/lib/database/CMakeLists.txt | 3 +++ hecl/lib/frontend/CMakeLists.txt | 3 +++ hecl/lib/runtime/CMakeLists.txt | 2 ++ 13 files changed, 83 insertions(+), 4 deletions(-) create mode 100644 hecl/CMakeLists.txt create mode 100644 hecl/driver/CMakeLists.txt create mode 100644 hecl/extern/CMakeLists.txt create mode 100644 hecl/extern/libpng/CMakeLists.txt create mode 100644 hecl/lib/CMakeLists.txt create mode 100644 hecl/lib/backend/CMakeLists.txt create mode 100644 hecl/lib/database/CMakeLists.txt create mode 100644 hecl/lib/frontend/CMakeLists.txt create mode 100644 hecl/lib/runtime/CMakeLists.txt diff --git a/hecl/CMakeLists.txt b/hecl/CMakeLists.txt new file mode 100644 index 000000000..dc4ef102b --- /dev/null +++ b/hecl/CMakeLists.txt @@ -0,0 +1,9 @@ +cmake_minimum_required(VERSION 3.0) +project(hecl) +set(HECL_INCLUDE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/include CACHE PATH "HECL include dir" FORCE) +add_subdirectory(extern) +include_directories(include ${LOG_VISOR_INCLUDE_DIR} ${ATHENA_INCLUDE_DIR}) +set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11") +add_subdirectory(lib) +add_subdirectory(driver) +install(DIRECTORY include/HECL DESTINATION include/HECL) diff --git a/hecl/driver/CMakeLists.txt b/hecl/driver/CMakeLists.txt new file mode 100644 index 000000000..7ae0de2ab --- /dev/null +++ b/hecl/driver/CMakeLists.txt @@ -0,0 +1,2 @@ +add_executable(hecl main.cpp) +target_link_libraries(hecl LogVisor HECL blowfish pthread) diff --git a/hecl/extern/Athena b/hecl/extern/Athena index 6ac88b37f..ce917d4ac 160000 --- a/hecl/extern/Athena +++ b/hecl/extern/Athena @@ -1 +1 @@ -Subproject commit 6ac88b37f481c762b1cfc532eea2062b730a81b1 +Subproject commit ce917d4aca98551aff497f012a1dfab6975f36c3 diff --git a/hecl/extern/CMakeLists.txt b/hecl/extern/CMakeLists.txt new file mode 100644 index 000000000..c7e741504 --- /dev/null +++ b/hecl/extern/CMakeLists.txt @@ -0,0 +1,6 @@ +set(ATHENA_INCLUDE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/Athena/include CACHE PATH "Athena include dir" FORCE) +add_subdirectory(libpng) +add_subdirectory(blowfish) +add_subdirectory(LogVisor) +add_subdirectory(Athena) +add_subdirectory(RetroCommon) diff --git a/hecl/extern/LogVisor b/hecl/extern/LogVisor index c3dc632dd..4416d51c4 160000 --- a/hecl/extern/LogVisor +++ b/hecl/extern/LogVisor @@ -1 +1 @@ -Subproject commit c3dc632dd0f2f750697ccd6ee10898b4f45fb502 +Subproject commit 4416d51c461c6d6c21ecf6c91c7a1c31210517d2 diff --git a/hecl/extern/RetroCommon b/hecl/extern/RetroCommon index 8cc3c014e..4f79743da 160000 --- a/hecl/extern/RetroCommon +++ b/hecl/extern/RetroCommon @@ -1 +1 @@ -Subproject commit 8cc3c014e6348fbcda511a30235613348fb491bd +Subproject commit 4f79743da0821645001a37046b98357c1c3acde9 diff --git a/hecl/extern/libpng/CMakeLists.txt b/hecl/extern/libpng/CMakeLists.txt new file mode 100644 index 000000000..8bb699b57 --- /dev/null +++ b/hecl/extern/libpng/CMakeLists.txt @@ -0,0 +1,24 @@ +add_library(png + png.h + pngconf.h + pngdebug.h + pnginfo.h + pngpriv.h + pngstruct.h + pnglibconf.h + + png.c + pngerror.c + pngget.c + pngmem.c + pngpread.c + pngread.c + pngrio.c + pngrtran.c + pngrutil.c + pngset.c + pngtrans.c + pngwio.c + pngwrite.c + pngwtran.c + pngwutil.c) \ No newline at end of file diff --git a/hecl/include/HECL/Database.hpp b/hecl/include/HECL/Database.hpp index bc882f82f..4f7eb00ea 100644 --- a/hecl/include/HECL/Database.hpp +++ b/hecl/include/HECL/Database.hpp @@ -74,7 +74,22 @@ public: ProjectPath subpath; bool cookedonly; }; - virtual bool canExtract(const ExtractPassInfo& info) + + /** + * @brief Interactive Extract Option + * + * Constructed by canExtract() to solicit the user for game-specific + * extraction options (i.e. games that are gathered into a trilogy collection) + */ + struct ExtractOption + { + SystemString name; + SystemString desc; + bool defVal; + std::vector childOpts; + }; + + virtual bool canExtract(const ExtractPassInfo& info, std::vector& opts) {(void)info;LogModule.report(LogVisor::Error, "not implemented");return false;} virtual void doExtract(const Project& project, const ExtractPassInfo& info) {(void)project;(void)info;} diff --git a/hecl/lib/CMakeLists.txt b/hecl/lib/CMakeLists.txt new file mode 100644 index 000000000..9d5aa7017 --- /dev/null +++ b/hecl/lib/CMakeLists.txt @@ -0,0 +1,14 @@ +add_subdirectory(backend) +add_subdirectory(database) +add_subdirectory(frontend) +add_subdirectory(runtime) + +add_library(HECL + HECL.cpp + ProjectPath.cpp + WideStringConvert.cpp) +target_link_libraries(HECL + HECLBackend + HECLDatabase + HECLFrontend + HECLRuntime) diff --git a/hecl/lib/backend/CMakeLists.txt b/hecl/lib/backend/CMakeLists.txt new file mode 100644 index 000000000..e99d6eebe --- /dev/null +++ b/hecl/lib/backend/CMakeLists.txt @@ -0,0 +1 @@ +add_library(HECLBackend HECLBackend.cpp) diff --git a/hecl/lib/database/CMakeLists.txt b/hecl/lib/database/CMakeLists.txt new file mode 100644 index 000000000..d1555adbd --- /dev/null +++ b/hecl/lib/database/CMakeLists.txt @@ -0,0 +1,3 @@ +add_library(HECLDatabase + Project.cpp + Registry.cpp) diff --git a/hecl/lib/frontend/CMakeLists.txt b/hecl/lib/frontend/CMakeLists.txt new file mode 100644 index 000000000..759d539e9 --- /dev/null +++ b/hecl/lib/frontend/CMakeLists.txt @@ -0,0 +1,3 @@ +add_library(HECLFrontend + CHECLIR.cpp + CHECLLexer.cpp) diff --git a/hecl/lib/runtime/CMakeLists.txt b/hecl/lib/runtime/CMakeLists.txt new file mode 100644 index 000000000..bf9e28d3c --- /dev/null +++ b/hecl/lib/runtime/CMakeLists.txt @@ -0,0 +1,2 @@ +add_library(HECLRuntime + HECLRuntime.cpp)