64 lines
1.9 KiB
CMake
64 lines
1.9 KiB
CMake
set(CMAKE_CXX_STANDARD 20)
|
|
set(CMAKE_CXX_STANDARD_REQUIRED True)
|
|
|
|
|
|
#====================FMT ====================
|
|
set(fmt_DIR ${CMAKE_CURRENT_SOURCE_DIR}/fmt)
|
|
add_subdirectory(${fmt_DIR})
|
|
|
|
#=================== SPD ====================
|
|
set(SPDLOG_WCHAR_FILENAMES ON CACHE BOOL "")
|
|
set(SPDLOG_NO_THREAD_ID ON CACHE BOOL "")
|
|
set(SPDLOG_FMT_EXTERNAL ON CACHE BOOL "")
|
|
add_subdirectory(spdlog EXCLUDE_FROM_ALL)
|
|
add_library(stb INTERFACE)
|
|
target_include_directories(stb INTERFACE "${CMAKE_CURRENT_SOURCE_DIR}/stb")
|
|
|
|
#=================== SDL3 ===================
|
|
|
|
set(SDL3_DIR ${CMAKE_CURRENT_SOURCE_DIR}/SDL)
|
|
add_subdirectory(${SDL3_DIR})
|
|
|
|
#================ Zydis ========================
|
|
# Register Zydis dependency.
|
|
# Disable build of tools and examples.
|
|
option(ZYDIS_BUILD_TOOLS "" OFF)
|
|
option(ZYDIS_BUILD_EXAMPLES "" OFF)
|
|
set(zydis_DIR ${CMAKE_CURRENT_SOURCE_DIR}/zydis)
|
|
add_subdirectory(${zydis_DIR})
|
|
|
|
#========== winpthreads ======================
|
|
add_subdirectory(winpthread)
|
|
#=================== IMGUI ===================
|
|
|
|
set(IMGUI_DIR ${CMAKE_CURRENT_SOURCE_DIR}/imgui)
|
|
add_library(IMGUI STATIC)
|
|
|
|
|
|
target_sources( IMGUI
|
|
PRIVATE
|
|
${IMGUI_DIR}/imgui_demo.cpp
|
|
${IMGUI_DIR}/imgui_draw.cpp
|
|
${IMGUI_DIR}/imgui_tables.cpp
|
|
${IMGUI_DIR}/imgui_widgets.cpp
|
|
${IMGUI_DIR}/imgui.cpp
|
|
|
|
PRIVATE
|
|
${IMGUI_DIR}/backends/imgui_impl_opengl3.cpp
|
|
${IMGUI_DIR}/backends/imgui_impl_sdl3.cpp
|
|
)
|
|
|
|
target_include_directories( IMGUI
|
|
PUBLIC ${IMGUI_DIR}
|
|
PUBLIC ${IMGUI_DIR}/backends
|
|
PUBLIC ${SDL3_DIR}/include
|
|
)
|
|
|
|
find_package(OpenGL REQUIRED)
|
|
target_link_libraries(IMGUI PUBLIC ${OPENGL_LIBRARIES})
|
|
|
|
|
|
target_link_libraries(IMGUI PUBLIC SDL3-shared ${CMAKE_DL_LIBS} Zydis winpthread)
|
|
|
|
|