diff --git a/MobileGL/MG_Test/Buffer/CMakeLists.txt b/MobileGL/MG_Test/Buffer/CMakeLists.txt index 957730c4..80460495 100644 --- a/MobileGL/MG_Test/Buffer/CMakeLists.txt +++ b/MobileGL/MG_Test/Buffer/CMakeLists.txt @@ -13,6 +13,10 @@ add_executable( ${MGL_ROOT}/MobileGL/MG_State/GLState/TextureState/TextureUnit.cpp ${MGL_ROOT}/MobileGL/MG_State/GLState/TextureState/TextureState.cpp ${MGL_ROOT}/MobileGL/MG_State/GLState/ErrorState/Error.cpp + ${MGL_ROOT}/MobileGL/MG_State/GLState/ProgramState/ProgramObject.cpp + ${MGL_ROOT}/MobileGL/MG_State/GLState/ProgramState/ShaderObject.cpp + ${MGL_ROOT}/MobileGL/MG_State/GLState/ProgramState/ProgramState.cpp + ${MGL_ROOT}/MobileGL/MG_Impl/GLImpl/Program/GL_Program.cpp ${MGL_ROOT}/MobileGL/MG_Impl/GLImpl/Buffer/GL_Buffer.cpp ${MGL_ROOT}/MobileGL/MG_Impl/GLImpl/Getter/GL_Getter.cpp ${MGL_ROOT}/MobileGL/MG_Impl/GLImpl/Buffer/Validators.cpp @@ -28,6 +32,8 @@ add_executable( ${MGL_ROOT}/MobileGL/MG_Util/Converters/MGToGL/DataTypeConverter.cpp ${MGL_ROOT}/MobileGL/MG_Util/Converters/GLToMG/BufferEnumConverter.cpp ${MGL_ROOT}/MobileGL/MG_Util/Converters/GLToMG/DataTypeConverter.cpp + ${MGL_ROOT}/MobileGL/MG_Util/ShaderTranspiler/ShaderCompiler.cpp + ${MGL_ROOT}/MobileGL/MG_Util/ShaderTranspiler/SpvcSession.cpp ${MGL_ROOT}/MobileGL/MG_Backend/Init.cpp ${MGL_ROOT}/MobileGL/MG_Util/Debug/Log.cpp ) @@ -40,6 +46,7 @@ target_include_directories(BufferTest PRIVATE target_link_libraries( BufferTest GTest::gtest_main + ${LINK_LIBRARIES} ) include(GoogleTest) diff --git a/MobileGL/MG_Test/CMakeLists.txt b/MobileGL/MG_Test/CMakeLists.txt index 33b86f29..b4efe926 100644 --- a/MobileGL/MG_Test/CMakeLists.txt +++ b/MobileGL/MG_Test/CMakeLists.txt @@ -27,6 +27,57 @@ target_link_libraries( GTest::gtest_main ) +# Vulkan SDK's cmake config is fundamentally broken. Directly find libs instead +if (${CMAKE_SYSTEM_NAME} MATCHES "Darwin") + find_package(Vulkan REQUIRED) + get_filename_component(VULKAN_LIB_DIR ${Vulkan_LIBRARY} PATH) + + set(LINK_LIBRARIES + ${VULKAN_LIB_DIR}/libglslang.a + ${VULKAN_LIB_DIR}/libspirv-cross-c-shared.dylib + ${VULKAN_LIB_DIR}/libGenericCodeGen.a + ${VULKAN_LIB_DIR}/libglslang-default-resource-limits.a + ${VULKAN_LIB_DIR}/libMachineIndependent.a + ${VULKAN_LIB_DIR}/libOSDependent.a + ${VULKAN_LIB_DIR}/libSPIRV-Tools-diff.a + ${VULKAN_LIB_DIR}/libSPIRV-Tools-link.a + ${VULKAN_LIB_DIR}/libSPIRV-Tools-lint.a + ${VULKAN_LIB_DIR}/libSPIRV-Tools-opt.a + ${VULKAN_LIB_DIR}/libSPIRV-Tools-reduce.a + ${VULKAN_LIB_DIR}/libSPIRV-Tools.a + ${VULKAN_LIB_DIR}/libSPIRV.a + ${VULKAN_LIB_DIR}/libSPVRemapper.a) +elseif (${CMAKE_SYSTEM_NAME} MATCHES "Windows") + find_package(Vulkan REQUIRED) + get_filename_component(VULKAN_LIB_DIR ${Vulkan_LIBRARY} PATH) + + set(LINK_LIBRARIES + ${VULKAN_LIB_DIR}/glslang$<$:d>.lib + ${VULKAN_LIB_DIR}/spirv-cross-c-shared$<$:d>.lib + ${VULKAN_LIB_DIR}/GenericCodeGen$<$:d>.lib + ${VULKAN_LIB_DIR}/glslang-default-resource-limits$<$:d>.lib + ${VULKAN_LIB_DIR}/MachineIndependent$<$:d>.lib + ${VULKAN_LIB_DIR}/OSDependent$<$:d>.lib + ${VULKAN_LIB_DIR}/SPIRV-Tools-diff$<$:d>.lib + ${VULKAN_LIB_DIR}/SPIRV-Tools-link$<$:d>.lib + ${VULKAN_LIB_DIR}/SPIRV-Tools-lint$<$:d>.lib + ${VULKAN_LIB_DIR}/SPIRV-Tools-opt$<$:d>.lib + ${VULKAN_LIB_DIR}/SPIRV-Tools-reduce$<$:d>.lib + ${VULKAN_LIB_DIR}/SPIRV-Tools$<$:d>.lib + ${VULKAN_LIB_DIR}/SPIRV$<$:d>.lib + ${VULKAN_LIB_DIR}/SPVRemapper$<$:d>.lib) +else () + find_package(glslang CONFIG REQUIRED) + find_package(spirv_cross_core CONFIG REQUIRED) + find_package(spirv_cross_glsl CONFIG REQUIRED) + find_package(spirv_cross_hlsl CONFIG REQUIRED) + find_package(spirv_cross_msl CONFIG REQUIRED) + find_package(spirv_cross_cpp CONFIG REQUIRED) + find_package(spirv_cross_reflect CONFIG REQUIRED) + find_package(spirv_cross_c CONFIG REQUIRED) + set(LINK_LIBRARIES glslang::glslang spirv-cross-c) +endif() + include(GoogleTest) gtest_discover_tests(SanityTest) diff --git a/MobileGL/MG_Test/Program/CMakeLists.txt b/MobileGL/MG_Test/Program/CMakeLists.txt index 70137c58..95c616f4 100644 --- a/MobileGL/MG_Test/Program/CMakeLists.txt +++ b/MobileGL/MG_Test/Program/CMakeLists.txt @@ -1,57 +1,5 @@ cmake_minimum_required(VERSION 3.24) -# Vulkan SDK's cmake config is fundamentally broken. Directly find libs instead -if (${CMAKE_SYSTEM_NAME} MATCHES "Darwin") - find_package(Vulkan REQUIRED) - get_filename_component(VULKAN_LIB_DIR ${Vulkan_LIBRARY} PATH) - - set(LINK_LIBRARIES - ${VULKAN_LIB_DIR}/libglslang.a - ${VULKAN_LIB_DIR}/libspirv-cross-c-shared.dylib - ${VULKAN_LIB_DIR}/libGenericCodeGen.a - ${VULKAN_LIB_DIR}/libglslang-default-resource-limits.a - ${VULKAN_LIB_DIR}/libMachineIndependent.a - ${VULKAN_LIB_DIR}/libOSDependent.a - ${VULKAN_LIB_DIR}/libSPIRV-Tools-diff.a - ${VULKAN_LIB_DIR}/libSPIRV-Tools-link.a - ${VULKAN_LIB_DIR}/libSPIRV-Tools-lint.a - ${VULKAN_LIB_DIR}/libSPIRV-Tools-opt.a - ${VULKAN_LIB_DIR}/libSPIRV-Tools-reduce.a - ${VULKAN_LIB_DIR}/libSPIRV-Tools.a - ${VULKAN_LIB_DIR}/libSPIRV.a - ${VULKAN_LIB_DIR}/libSPVRemapper.a) -elseif (${CMAKE_SYSTEM_NAME} MATCHES "Windows") - find_package(Vulkan REQUIRED) - get_filename_component(VULKAN_LIB_DIR ${Vulkan_LIBRARY} PATH) - - set(LINK_LIBRARIES - ${VULKAN_LIB_DIR}/glslang$<$:d>.lib - ${VULKAN_LIB_DIR}/spirv-cross-c-shared$<$:d>.lib - ${VULKAN_LIB_DIR}/GenericCodeGen$<$:d>.lib - ${VULKAN_LIB_DIR}/glslang-default-resource-limits$<$:d>.lib - ${VULKAN_LIB_DIR}/MachineIndependent$<$:d>.lib - ${VULKAN_LIB_DIR}/OSDependent$<$:d>.lib - ${VULKAN_LIB_DIR}/SPIRV-Tools-diff$<$:d>.lib - ${VULKAN_LIB_DIR}/SPIRV-Tools-link$<$:d>.lib - ${VULKAN_LIB_DIR}/SPIRV-Tools-lint$<$:d>.lib - ${VULKAN_LIB_DIR}/SPIRV-Tools-opt$<$:d>.lib - ${VULKAN_LIB_DIR}/SPIRV-Tools-reduce$<$:d>.lib - ${VULKAN_LIB_DIR}/SPIRV-Tools$<$:d>.lib - ${VULKAN_LIB_DIR}/SPIRV$<$:d>.lib - ${VULKAN_LIB_DIR}/SPVRemapper$<$:d>.lib) -else () - find_package(glslang CONFIG REQUIRED) - find_package(spirv_cross_core CONFIG REQUIRED) - find_package(spirv_cross_glsl CONFIG REQUIRED) - find_package(spirv_cross_hlsl CONFIG REQUIRED) - find_package(spirv_cross_msl CONFIG REQUIRED) - find_package(spirv_cross_cpp CONFIG REQUIRED) - find_package(spirv_cross_reflect CONFIG REQUIRED) - find_package(spirv_cross_c CONFIG REQUIRED) - set(LINK_LIBRARIES glslang::glslang spirv-cross-c) -endif() - - add_executable( ProgramUtilTest ProgramUtilTest.cpp @@ -73,5 +21,59 @@ target_link_libraries( ${LINK_LIBRARIES} ) +add_executable( + ProgramTest + ProgramTest.cpp + + ${MGL_ROOT}/MobileGL/MG_State/GLState/ProgramState/ProgramObject.cpp + ${MGL_ROOT}/MobileGL/MG_State/GLState/ProgramState/ShaderObject.cpp + ${MGL_ROOT}/MobileGL/MG_State/GLState/ProgramState/ProgramState.cpp + ${MGL_ROOT}/MobileGL/MG_Impl/GLImpl/Program/GL_Program.cpp + + ${MGL_ROOT}/MobileGL/MG_Util/Converters/GLToStr/GLEnumConverter.cpp + ${MGL_ROOT}/MobileGL/MG_Util/Converters/GLToGlslang/GLShaderLangConverter.cpp + ${MGL_ROOT}/MobileGL/MG_Util/ShaderTranspiler/ShaderCompiler.cpp + ${MGL_ROOT}/MobileGL/MG_Util/ShaderTranspiler/SpvcSession.cpp + + ${MGL_ROOT}/MobileGL/MG_State/GLState/Core.cpp + ${MGL_ROOT}/MobileGL/MG_State/GLState/BufferState/BufferState.cpp + ${MGL_ROOT}/MobileGL/MG_State/GLState/BufferState/BufferObject.cpp + ${MGL_ROOT}/MobileGL/MG_State/GLState/VertexArrayState/VertexArrayObject.cpp + ${MGL_ROOT}/MobileGL/MG_State/GLState/VertexArrayState/VertexArrayState.cpp + ${MGL_ROOT}/MobileGL/MG_State/GLState/TextureState/TextureObject.cpp + ${MGL_ROOT}/MobileGL/MG_State/GLState/TextureState/TextureUnit.cpp + ${MGL_ROOT}/MobileGL/MG_State/GLState/TextureState/TextureState.cpp + ${MGL_ROOT}/MobileGL/MG_State/GLState/ErrorState/Error.cpp + ${MGL_ROOT}/MobileGL/MG_Impl/GLImpl/Buffer/GL_Buffer.cpp + ${MGL_ROOT}/MobileGL/MG_Impl/GLImpl/Getter/GL_Getter.cpp + ${MGL_ROOT}/MobileGL/MG_Impl/GLImpl/Buffer/Validators.cpp + ${MGL_ROOT}/MobileGL/MG_Impl/GLImpl/VertexArray/Validators.cpp + ${MGL_ROOT}/MobileGL/MG_Impl/GLImpl/VertexArray/GL_VertexArray.cpp + ${MGL_ROOT}/MobileGL/MG_Util/Converters/GLToStr/GLEnumConverter.cpp + ${MGL_ROOT}/MobileGL/MG_Util/Converters/MGToStr/GLExtensionConverter.cpp + ${MGL_ROOT}/MobileGL/MG_Util/Converters/MGToStr/BufferEnumConverter.cpp + ${MGL_ROOT}/MobileGL/MG_Util/Converters/MGToStr/DataTypeConverter.cpp + ${MGL_ROOT}/MobileGL/MG_Util/Converters/GLToGlslang/GLShaderLangConverter.cpp + ${MGL_ROOT}/MobileGL/MG_Util/Converters/MGToGL/ErrorCodeConverter.cpp + ${MGL_ROOT}/MobileGL/MG_Util/Converters/MGToGL/BufferEnumConverter.cpp + ${MGL_ROOT}/MobileGL/MG_Util/Converters/MGToGL/DataTypeConverter.cpp + ${MGL_ROOT}/MobileGL/MG_Util/Converters/GLToMG/BufferEnumConverter.cpp + ${MGL_ROOT}/MobileGL/MG_Util/Converters/GLToMG/DataTypeConverter.cpp + ${MGL_ROOT}/MobileGL/MG_Backend/Init.cpp + ${MGL_ROOT}/MobileGL/MG_Util/Debug/Log.cpp +) + +target_include_directories(ProgramTest PRIVATE + ${MGL_ROOT}/include + ${MGL_ROOT}/MobileGL +) + +target_link_libraries( + ProgramTest + GTest::gtest_main + ${LINK_LIBRARIES} +) + include(GoogleTest) -gtest_discover_tests(ProgramUtilTest) \ No newline at end of file +gtest_discover_tests(ProgramUtilTest) +gtest_discover_tests(ProgramTest) \ No newline at end of file diff --git a/MobileGL/MG_Test/Program/ProgramTest.cpp b/MobileGL/MG_Test/Program/ProgramTest.cpp new file mode 100644 index 00000000..80831e8c --- /dev/null +++ b/MobileGL/MG_Test/Program/ProgramTest.cpp @@ -0,0 +1,12 @@ +#include +#include "Includes.h" + +using namespace MobileGL; + +class ProgramTest : public ::testing::Test { +protected: +}; + +TEST_F(ProgramTest, Sanity) { + ASSERT_TRUE(true); +} diff --git a/MobileGL/MG_Test/VertexArray/CMakeLists.txt b/MobileGL/MG_Test/VertexArray/CMakeLists.txt index ff4b9e5c..3ab508c3 100644 --- a/MobileGL/MG_Test/VertexArray/CMakeLists.txt +++ b/MobileGL/MG_Test/VertexArray/CMakeLists.txt @@ -13,6 +13,10 @@ add_executable( ${MGL_ROOT}/MobileGL/MG_State/GLState/TextureState/TextureUnit.cpp ${MGL_ROOT}/MobileGL/MG_State/GLState/TextureState/TextureState.cpp ${MGL_ROOT}/MobileGL/MG_State/GLState/ErrorState/Error.cpp + ${MGL_ROOT}/MobileGL/MG_State/GLState/ProgramState/ProgramObject.cpp + ${MGL_ROOT}/MobileGL/MG_State/GLState/ProgramState/ShaderObject.cpp + ${MGL_ROOT}/MobileGL/MG_State/GLState/ProgramState/ProgramState.cpp + ${MGL_ROOT}/MobileGL/MG_Impl/GLImpl/Program/GL_Program.cpp ${MGL_ROOT}/MobileGL/MG_Impl/GLImpl/Buffer/GL_Buffer.cpp ${MGL_ROOT}/MobileGL/MG_Impl/GLImpl/Getter/GL_Getter.cpp ${MGL_ROOT}/MobileGL/MG_Impl/GLImpl/Buffer/Validators.cpp @@ -28,6 +32,8 @@ add_executable( ${MGL_ROOT}/MobileGL/MG_Util/Converters/MGToGL/DataTypeConverter.cpp ${MGL_ROOT}/MobileGL/MG_Util/Converters/GLToMG/BufferEnumConverter.cpp ${MGL_ROOT}/MobileGL/MG_Util/Converters/GLToMG/DataTypeConverter.cpp + ${MGL_ROOT}/MobileGL/MG_Util/ShaderTranspiler/ShaderCompiler.cpp + ${MGL_ROOT}/MobileGL/MG_Util/ShaderTranspiler/SpvcSession.cpp ${MGL_ROOT}/MobileGL/MG_Backend/Init.cpp ${MGL_ROOT}/MobileGL/MG_Util/Debug/Log.cpp ) @@ -40,6 +46,7 @@ target_include_directories(VertexArrayTest PRIVATE target_link_libraries( VertexArrayTest GTest::gtest_main + ${LINK_LIBRARIES} ) include(GoogleTest)