diff --git a/.gitignore b/.gitignore index 0c595f17..49288515 100644 --- a/.gitignore +++ b/.gitignore @@ -4,6 +4,7 @@ build/ src/lib/SDL2 src/lib/cmake src/lib/GL +src/lib/abseil-cpp src/lib/libGLEW.2.2.0.dylib src/lib/libGLEW.2.2.dylib src/lib/libGLEW.a diff --git a/CMakeLists.txt b/CMakeLists.txt index a3001a87..d9d13938 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -15,37 +15,28 @@ set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/lib) set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin) set(CMAKE_POSITION_INDEPENDENT_CODE ON) set(CMAKE_MODULE_LINKER_FLAGS \"-Wl,--no-undefined -Wl,--no-undefined\") +set(CMAKE_MODULE_PATH "${PROJECT_SOURCE_DIR}/cmake" ${CMAKE_MODULE_PATH}) set(BUILD_SHARED_LIBS ON) # Abseil Standard Specifications ---------------------------------------------- -set(ABSL_PROPAGATE_CXX_STD ON) -set(ABSL_CXX_STANDARD 17) -set(ABSL_USE_GOOGLETEST_HEAD ON) -set(ABSL_ENABLE_INSTALL ON) -set( - ABSL_TARGETS - absl::strings - absl::flags - absl::status - absl::statusor - absl::examine_stack - absl::stacktrace - absl::base - absl::config - absl::core_headers - absl::raw_logging_internal - absl::failure_signal_handler - absl::flat_hash_map -) +include(cmake/absl.cmake) + +set(PROTOBUF_INCLUDE_PATH ${CMAKE_CURRENT_BINARY_DIR} + CACHE INTERNAL "Path to generated protobuf files.") +include_directories(${PROTOBUF_INCLUDE_PATH}) # Video Libraries ------------------------------------------------------------- find_package(PNG REQUIRED) find_package(OpenGL REQUIRED) find_package(GLEW REQUIRED) find_package(gRPC REQUIRED) -set(PROTOBUF_INCLUDE_PATH ${CMAKE_CURRENT_BINARY_DIR} - CACHE INTERNAL "Path to generated protobuf files.") -include_directories(${PROTOBUF_INCLUDE_PATH}) +include(cmake/openssl.cmake) + +# Asar Assembly --------------------------------------------------------------- +add_subdirectory(src/lib/asar/src) +include(cmake/asar.cmake) + +include(cmake/imgui.cmake) # Project Files add_subdirectory(src/lib/abseil-cpp) diff --git a/assets/libasar.dll b/assets/libasar.dll deleted file mode 100644 index a5a25aba..00000000 Binary files a/assets/libasar.dll and /dev/null differ diff --git a/cmake/absl.cmake b/cmake/absl.cmake new file mode 100644 index 00000000..912ce128 --- /dev/null +++ b/cmake/absl.cmake @@ -0,0 +1,19 @@ +set(ABSL_PROPAGATE_CXX_STD ON) +set(ABSL_CXX_STANDARD 17) +set(ABSL_USE_GOOGLETEST_HEAD ON) +set(ABSL_ENABLE_INSTALL ON) +set( + ABSL_TARGETS + absl::strings + absl::flags + absl::status + absl::statusor + absl::examine_stack + absl::stacktrace + absl::base + absl::config + absl::core_headers + absl::raw_logging_internal + absl::failure_signal_handler + absl::flat_hash_map +) \ No newline at end of file diff --git a/cmake/asar.cmake b/cmake/asar.cmake new file mode 100644 index 00000000..f77c388b --- /dev/null +++ b/cmake/asar.cmake @@ -0,0 +1,28 @@ +get_target_property(ASAR_INCLUDE_DIR asar-static INCLUDE_DIRECTORIES) +target_include_directories(asar-static PRIVATE ${ASAR_INCLUDE_DIR}) +set(ASAR_GEN_EXE OFF) +set(ASAR_GEN_DLL ON) +set(ASAR_GEN_LIB ON) +set(ASAR_GEN_EXE_TEST OFF) +set(ASAR_GEN_DLL_TEST OFF) + +set(ASAR_STATIC_SRC + "../src/lib/asar/src/asar/interface-lib.cpp" + "../src/lib/asar/src/asar/addr2line.cpp" + "../src/lib/asar/src/asar/arch-65816.cpp" + "../src/lib/asar/src/asar/arch-spc700.cpp" + "../src/lib/asar/src/asar/arch-superfx.cpp" + "../src/lib/asar/src/asar/assembleblock.cpp" + "../src/lib/asar/src/asar/crc32.cpp" + "../src/lib/asar/src/asar/libcon.cpp" + "../src/lib/asar/src/asar/libsmw.cpp" + "../src/lib/asar/src/asar/libstr.cpp" + "../src/lib/asar/src/asar/macro.cpp" + "../src/lib/asar/src/asar/main.cpp" + "../src/lib/asar/src/asar/asar_math.cpp" + "../src/lib/asar/src/asar/virtualfile.cpp" + "../src/lib/asar/src/asar/warnings.cpp" + "../src/lib/asar/src/asar/errors.cpp" + "../src/lib/asar/src/asar/platform/file-helpers.cpp" + "../src/lib/asar/src/asar/platform/linux/file-helpers-linux.cpp" +) \ No newline at end of file diff --git a/cmake/imgui.cmake b/cmake/imgui.cmake new file mode 100644 index 00000000..cf434b89 --- /dev/null +++ b/cmake/imgui.cmake @@ -0,0 +1,35 @@ +# gui libraries --------------------------------------------------------------- +set(IMGUI_PATH ${CMAKE_SOURCE_DIR}/src/lib/imgui) +file(GLOB IMGUI_SOURCES ${IMGUI_PATH}/*.cpp) +add_library("ImGui" STATIC ${IMGUI_SOURCES}) +target_include_directories("ImGui" PUBLIC ${IMGUI_PATH}) +target_include_directories(ImGui PUBLIC ${SDL2_INCLUDE_DIR}) +target_compile_definitions(ImGui PUBLIC + IMGUI_IMPL_OPENGL_LOADER_CUSTOM= GL_GLEXT_PROTOTYPES=1) + +set(IMGUI_FILE_DLG_PATH ${CMAKE_SOURCE_DIR}/src/lib/ImGuiFileDialog) +file(GLOB IMGUI_FILE_DLG_SOURCES ${IMGUI_FILE_DLG_PATH}/*.cpp) +add_library("ImGuiFileDialog" STATIC ${IMGUI_FILE_DLG_SOURCES}) +target_include_directories(ImGuiFileDialog PUBLIC ${IMGUI_PATH}) +target_compile_definitions(ImGuiFileDialog PUBLIC + IMGUI_IMPL_OPENGL_LOADER_CUSTOM= GL_GLEXT_PROTOTYPES=1) + +set(IMGUI_COLOR_TEXT_EDIT_PATH ${CMAKE_SOURCE_DIR}/src/lib/ImGuiColorTextEdit) +file(GLOB IMGUI_COLOR_TEXT_EDIT_SOURCES ${IMGUI_COLOR_TEXT_EDIT_PATH}/*.cpp) +add_library("ImGuiColorTextEdit" STATIC ${IMGUI_COLOR_TEXT_EDIT_SOURCES}) +target_include_directories(ImGuiColorTextEdit PUBLIC ${IMGUI_PATH}) +target_compile_definitions(ImGuiColorTextEdit PUBLIC + IMGUI_IMPL_OPENGL_LOADER_CUSTOM= GL_GLEXT_PROTOTYPES=1) + +set( + IMGUI_SRC + ${IMGUI_PATH}/imgui.cpp + ${IMGUI_PATH}/imgui_demo.cpp + ${IMGUI_PATH}/imgui_draw.cpp + ${IMGUI_PATH}/imgui_widgets.cpp + ${IMGUI_PATH}/backends/imgui_impl_sdl.cpp + ${IMGUI_PATH}/backends/imgui_impl_sdlrenderer.cpp + ${IMGUI_PATH}/misc/cpp/imgui_stdlib.cpp + ${IMGUI_FILE_DLG_PATH}/ImGuiFileDialog.cpp + ${IMGUI_COLOR_TEXT_EDIT_PATH}/TextEditor.cpp +) \ No newline at end of file diff --git a/cmake/openssl.cmake b/cmake/openssl.cmake new file mode 100644 index 00000000..5b03bef5 --- /dev/null +++ b/cmake/openssl.cmake @@ -0,0 +1,3 @@ +set(OPENSSL_INCLUDE_DIR "/usr/local/Cellar/openssl@1.1/1.1.1q/include") +set(OPENSSL_CRYPTO_LIBRARY "/usr/local/Cellar/openssl@1.1/1.1.1q/lib/libcrypto.dylib") +set(OPENSSL_SSL_LIBRARY "/usr/local/Cellar/openssl@1.1/1.1.1q/lib/libssl.dylib") diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index c660273d..ea3d515e 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -1,70 +1,3 @@ -# gui libraries --------------------------------------------------------------- -set(IMGUI_PATH "lib/imgui") -file(GLOB IMGUI_SOURCES ${IMGUI_PATH}/*.cpp) -add_library("ImGui" STATIC ${IMGUI_SOURCES}) -target_include_directories("ImGui" PUBLIC ${IMGUI_PATH}) -target_include_directories(ImGui PUBLIC ${SDL2_INCLUDE_DIR}) -target_compile_definitions(ImGui PUBLIC - IMGUI_IMPL_OPENGL_LOADER_CUSTOM= GL_GLEXT_PROTOTYPES=1) - -set(IMGUI_FILE_DLG_PATH "lib/ImGuiFileDialog") -file(GLOB IMGUI_FILE_DLG_SOURCES ${IMGUI_FILE_DLG_PATH}/*.cpp) -add_library("ImGuiFileDialog" STATIC ${IMGUI_FILE_DLG_SOURCES}) -target_include_directories(ImGuiFileDialog PUBLIC ${IMGUI_PATH}) -target_compile_definitions(ImGuiFileDialog PUBLIC - IMGUI_IMPL_OPENGL_LOADER_CUSTOM= GL_GLEXT_PROTOTYPES=1) - -set(IMGUI_COLOR_TEXT_EDIT_PATH "lib/ImGuiColorTextEdit") -file(GLOB IMGUI_COLOR_TEXT_EDIT_SOURCES ${IMGUI_COLOR_TEXT_EDIT_PATH}/*.cpp) -add_library("ImGuiColorTextEdit" STATIC ${IMGUI_COLOR_TEXT_EDIT_SOURCES}) -target_include_directories(ImGuiColorTextEdit PUBLIC ${IMGUI_PATH}) -target_compile_definitions(ImGuiColorTextEdit PUBLIC - IMGUI_IMPL_OPENGL_LOADER_CUSTOM= GL_GLEXT_PROTOTYPES=1) - -set( - IMGUI_SRC - ${IMGUI_PATH}/imgui.cpp - ${IMGUI_PATH}/imgui_demo.cpp - ${IMGUI_PATH}/imgui_draw.cpp - ${IMGUI_PATH}/imgui_widgets.cpp - ${IMGUI_PATH}/backends/imgui_impl_sdl.cpp - ${IMGUI_PATH}/backends/imgui_impl_sdlrenderer.cpp - ${IMGUI_PATH}/misc/cpp/imgui_stdlib.cpp - ${IMGUI_FILE_DLG_PATH}/ImGuiFileDialog.cpp - ${IMGUI_COLOR_TEXT_EDIT_PATH}/TextEditor.cpp -) - -# Asar Assembly --------------------------------------------------------------- -add_subdirectory(lib/asar/src) -get_target_property(ASAR_INCLUDE_DIR asar-static INCLUDE_DIRECTORIES) -target_include_directories(asar-static PRIVATE ${ASAR_INCLUDE_DIR}) -set(ASAR_GEN_EXE OFF) -set(ASAR_GEN_DLL ON) -set(ASAR_GEN_LIB ON) -set(ASAR_GEN_EXE_TEST OFF) -set(ASAR_GEN_DLL_TEST OFF) - -set(ASAR_STATIC_SRC - "lib/asar/src/asar/interface-lib.cpp" - "lib/asar/src/asar/addr2line.cpp" - "lib/asar/src/asar/arch-65816.cpp" - "lib/asar/src/asar/arch-spc700.cpp" - "lib/asar/src/asar/arch-superfx.cpp" - "lib/asar/src/asar/assembleblock.cpp" - "lib/asar/src/asar/crc32.cpp" - "lib/asar/src/asar/libcon.cpp" - "lib/asar/src/asar/libsmw.cpp" - "lib/asar/src/asar/libstr.cpp" - "lib/asar/src/asar/macro.cpp" - "lib/asar/src/asar/main.cpp" - "lib/asar/src/asar/asar_math.cpp" - "lib/asar/src/asar/virtualfile.cpp" - "lib/asar/src/asar/warnings.cpp" - "lib/asar/src/asar/errors.cpp" - "lib/asar/src/asar/platform/file-helpers.cpp" - "lib/asar/src/asar/platform/linux/file-helpers-linux.cpp" -) - # yaze source files ----------------------------------------------------------- set( YAZE_APP_CORE_SRC diff --git a/src/lib/ImGuiFileDialog b/src/lib/ImGuiFileDialog index 7654d521..14039999 160000 --- a/src/lib/ImGuiFileDialog +++ b/src/lib/ImGuiFileDialog @@ -1 +1 @@ -Subproject commit 7654d521db314c6605757cd8d19dca4f2179f952 +Subproject commit 140399994f11edaedb41d5005dda481d95932644 diff --git a/src/lib/SDL b/src/lib/SDL index 0cc8dfdb..2e9f5b59 160000 --- a/src/lib/SDL +++ b/src/lib/SDL @@ -1 +1 @@ -Subproject commit 0cc8dfdb58b60e1ffc285025b7f1ed884a378601 +Subproject commit 2e9f5b5989c5140f47ce3ada603c1ae32d555f01 diff --git a/src/lib/imgui b/src/lib/imgui index 1480bc5d..1dd964f8 160000 --- a/src/lib/imgui +++ b/src/lib/imgui @@ -1 +1 @@ -Subproject commit 1480bc5d4e00f8633f89631da4c8df3ed4acce61 +Subproject commit 1dd964f87dc1ea0a76b137baf3401bd201fc2012 diff --git a/test/CMakeLists.txt b/test/CMakeLists.txt index 125c4c0d..c4b9f7cb 100644 --- a/test/CMakeLists.txt +++ b/test/CMakeLists.txt @@ -21,14 +21,15 @@ add_executable( ../src/app/gfx/snes_tile.cc ../src/app/gfx/snes_palette.cc ../src/app/core/common.cc - ../src/lib/asar/src/asar-dll-bindings/c/asardll.c + ${ASAR_STATIC_SRC} ) target_include_directories( yaze_test PUBLIC ../src/ ../src/lib/ - ../src/lib/asar/src/asar-dll-bindings/c + ../src/lib/asar/src/ + ${ASAR_INCLUDE_DIR} ${SDL_INCLUDE_DIRS} ) @@ -38,11 +39,14 @@ target_link_libraries( ${ABSL_TARGETS} ${OPENGL_LIBRARIES} ${CMAKE_DL_LIBS} + asar-static gmock_main gmock gtest_main gtest ) +target_compile_definitions(yaze_test PRIVATE "linux") +target_compile_definitions(yaze_test PRIVATE "stricmp=strcasecmp") include(GoogleTest) gtest_discover_tests(yaze_test) \ No newline at end of file diff --git a/test/asm_test.cc b/test/asm_test.cc index e9212e8e..9308895a 100644 --- a/test/asm_test.cc +++ b/test/asm_test.cc @@ -1,4 +1,5 @@ -#include +#include + #include #include