CLI_Manager/CMakeLists.txt

92 lines
2.1 KiB
CMake

cmake_minimum_required(VERSION 3.26)
project(CLI_Manager)
set(CMAKE_CXX_STANDARD 20)
#set(CMAKE_CXX_STANDARD_REQUIRED ON)
set(IMGUI_DIR $ENV{LIB_HOME}/imgui-docking)
set(GLFW_DIR $ENV{LIB_HOME}/glfw)
set(IMGUI_BACKENDS "glfw_opengl")
#set(IMGUI_BACKENDS "win32_dx11")
#set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -static")
#set(CMAKE_EXE_LINKER_FLAGS "-static-libgcc -static-libstdc++")
add_definitions(-DUNICODE -D_UNICODE)
# add header path
include_directories(
${IMGUI_DIR}
${IMGUI_DIR}/backends
${IMGUI_DIR}/misc/cpp
app/inc
)
# set common source
file(GLOB SRC
${IMGUI_DIR}/*.cpp
${IMGUI_DIR}/misc/cpp/*.cpp
app/src/*.*
main.cpp
)
if(IMGUI_BACKENDS STREQUAL "glfw_opengl")
add_definitions(-DIMGUI_IMPL_OPENGL_LOADER_GL3W)
include_directories(
${GLFW_DIR}/include
${IMGUI_DIR}/examples/libs/gl3w # for GL/gl3w.h
)
file(GLOB PLATFORM_SRC
${IMGUI_DIR}/examples/libs/gl3w/GL/gl3w.*
${IMGUI_DIR}/backends/imgui_impl_glfw.*
${IMGUI_DIR}/backends/imgui_impl_opengl3.*
)
link_directories(
${GLFW_DIR}/build/src
)
endif()
# 链接库和选项
if(IMGUI_BACKENDS STREQUAL "win32_dx11")
add_definitions(-DUSE_WIN32_BACKEND)
file(GLOB PLATFORM_SRC
${IMGUI_DIR}/backends/imgui_impl_win32.*
${IMGUI_DIR}/backends/imgui_impl_dx11.*
)
endif()
# generate binary
add_executable(${PROJECT_NAME} WIN32 ${SRC} ${PLATFORM_SRC} logo.rc)
if(IMGUI_BACKENDS STREQUAL "glfw_opengl")
target_link_libraries(${PROJECT_NAME}
glfw3.a
opengl32
)
endif()
# 链接库和选项
if(IMGUI_BACKENDS STREQUAL "win32_dx11")
target_link_libraries(${PROJECT_NAME}
d3d11
dxgi
user32
gdi32
ole32
dwmapi
d3dcompiler
)
endif()
# 设置链接选项
set_target_properties(${PROJECT_NAME} PROPERTIES
LINK_FLAGS "-static -static-libgcc -static-libstdc++ -Wl,-Bstatic -lpthread -Wl,-subsystem,windows"
)