diff --git a/CMakeLists.txt b/CMakeLists.txt index acc8bce..780aa10 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,48 +1,15 @@ cmake_minimum_required(VERSION 3.27) project(dxbc LANGUAGES CXX) -add_library(windows-headers INTERFACE) -target_include_directories(windows-headers INTERFACE ${CMAKE_CURRENT_SOURCE_DIR}/include/windows) +option(BUILD_EXAMPLE "Build example application" ON) find_package(Vulkan REQUIRED) +add_subdirectory(include/windows) add_subdirectory(src/util) add_subdirectory(src/spirv) +add_subdirectory(src/dxbc) -add_library(dxbc STATIC) -target_sources(dxbc PRIVATE - src/dxbc/dxbc_analysis.cpp - src/dxbc/dxbc_analysis.h - src/dxbc/dxbc_chunk_isgn.cpp - src/dxbc/dxbc_chunk_isgn.h - src/dxbc/dxbc_chunk_shex.cpp - src/dxbc/dxbc_chunk_shex.h - src/dxbc/dxbc_common.cpp - src/dxbc/dxbc_common.h - src/dxbc/dxbc_compiler.cpp - src/dxbc/dxbc_compiler.h - src/dxbc/dxbc_decoder.cpp - src/dxbc/dxbc_decoder.h - src/dxbc/dxbc_defs.cpp - src/dxbc/dxbc_defs.h - src/dxbc/dxbc_enums.h - src/dxbc/dxbc_header.cpp - src/dxbc/dxbc_header.h - src/dxbc/dxbc_include.h - src/dxbc/dxbc_modinfo.h - src/dxbc/dxbc_module.cpp - src/dxbc/dxbc_module.h - src/dxbc/dxbc_names.cpp - src/dxbc/dxbc_names.h - src/dxbc/dxbc_options.cpp - src/dxbc/dxbc_options.h - src/dxbc/dxbc_reader.cpp - src/dxbc/dxbc_reader.h - src/dxbc/dxbc_tag.h - src/dxbc/dxbc_util.cpp - src/dxbc/dxbc_util.h -) -target_include_directories(dxbc PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/src) -target_link_libraries(dxbc PUBLIC dxbc-util dxbc-spirv Vulkan::Vulkan) - -add_subdirectory(example) \ No newline at end of file +if (BUILD_EXAMPLE) + add_subdirectory(example) +endif() \ No newline at end of file diff --git a/example/main.cpp b/example/main.cpp index bdd0c0d..8d5d74f 100644 --- a/example/main.cpp +++ b/example/main.cpp @@ -1,7 +1,7 @@ #include -#include -#include +#include +#include #include diff --git a/include/windows/CMakeLists.txt b/include/windows/CMakeLists.txt new file mode 100644 index 0000000..5799415 --- /dev/null +++ b/include/windows/CMakeLists.txt @@ -0,0 +1,2 @@ +add_library(windows-headers INTERFACE) +target_include_directories(windows-headers INTERFACE ${CMAKE_CURRENT_SOURCE_DIR}) diff --git a/src/dxbc/CMakeLists.txt b/src/dxbc/CMakeLists.txt new file mode 100644 index 0000000..c83c25d --- /dev/null +++ b/src/dxbc/CMakeLists.txt @@ -0,0 +1,35 @@ +add_library(dxbc STATIC) +target_sources(dxbc PRIVATE + dxbc_analysis.cpp + dxbc_analysis.h + dxbc_chunk_isgn.cpp + dxbc_chunk_isgn.h + dxbc_chunk_shex.cpp + dxbc_chunk_shex.h + dxbc_common.cpp + dxbc_common.h + dxbc_compiler.cpp + dxbc_compiler.h + dxbc_decoder.cpp + dxbc_decoder.h + dxbc_defs.cpp + dxbc_defs.h + dxbc_enums.h + dxbc_header.cpp + dxbc_header.h + dxbc_include.h + dxbc_modinfo.h + dxbc_module.cpp + dxbc_module.h + dxbc_names.cpp + dxbc_names.h + dxbc_options.cpp + dxbc_options.h + dxbc_reader.cpp + dxbc_reader.h + dxbc_tag.h + dxbc_util.cpp + dxbc_util.h +) +target_include_directories(dxbc PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}) +target_link_libraries(dxbc PUBLIC dxbc-util dxbc-spirv Vulkan::Vulkan) \ No newline at end of file diff --git a/src/dxbc/dxbc_include.h b/src/dxbc/dxbc_include.h index 0bd1aef..67334f0 100644 --- a/src/dxbc/dxbc_include.h +++ b/src/dxbc/dxbc_include.h @@ -2,17 +2,17 @@ #include -#include "util/com/com_guid.h" -#include "util/com/com_object.h" -#include "util/com/com_pointer.h" +#include "../util/com/com_guid.h" +#include "../util/com/com_object.h" +#include "../util/com/com_pointer.h" -#include "util/log/log.h" -#include "util/log/log_debug.h" +#include "../util/log/log.h" +#include "../util/log/log_debug.h" -#include "util/rc/util_rc.h" -#include "util/rc/util_rc_ptr.h" +#include "../util/rc/util_rc.h" +#include "../util/rc/util_rc_ptr.h" -#include "util/util_bit.h" -#include "util/util_enum.h" -#include "util/util_error.h" -#include "util/util_string.h" +#include "../util/util_bit.h" +#include "../util/util_enum.h" +#include "../util/util_error.h" +#include "../util/util_string.h"