fix: msvc cmake config

This commit is contained in:
lexiaoyao 2025-11-26 22:50:04 +08:00
parent 6407d59572
commit 06dcb914fd
1 changed files with 6 additions and 11 deletions

View File

@ -9,17 +9,13 @@ set(CMAKE_CXX_EXTENSIONS OFF)
#set(CMAKE_AUTOUIC ON) #set(CMAKE_AUTOUIC ON)
set(PROJECT_OUTPUT_DIR ${CMAKE_SOURCE_DIR}/bin) set(PROJECT_OUTPUT_DIR ${CMAKE_SOURCE_DIR}/bin)
set(PROJECT_LIB_DIR ${CMAKE_SOURCE_DIR}/lib) set(PROJECT_LIB_DIR ${CMAKE_SOURCE_DIR}/lib)
#set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_SOURCE_DIR}/bin)
#set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_SOURCE_DIR}/lib)
#set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_SOURCE_DIR}/lib)
if (CMAKE_CXX_COMPILER_ID MATCHES GNU OR CMAKE_CXX_COMPILER_ID MATCHES Clang) if (CMAKE_CXX_COMPILER_ID MATCHES GNU OR CMAKE_CXX_COMPILER_ID MATCHES Clang)
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${PROJECT_OUTPUT_DIR}/${CMAKE_BUILD_TYPE}) set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${PROJECT_OUTPUT_DIR}/${CMAKE_BUILD_TYPE})
set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${PROJECT_LIB_DIR}/${CMAKE_BUILD_TYPE}) set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${PROJECT_LIB_DIR}/${CMAKE_BUILD_TYPE})
set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${PROJECT_LIB_DIR}/${CMAKE_BUILD_TYPE}) set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${PROJECT_LIB_DIR}/${CMAKE_BUILD_TYPE})
elseif(CMAKE_CXX_COMPILER_ID MATCHES MSVC) elseif(CMAKE_CXX_COMPILER_ID MATCHES MSVC)
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${PORJECT_OUTPUT_DIR}) set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${PROJECT_OUTPUT_DIR})
set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${PROJECT_LIB_DIR}) set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${PROJECT_LIB_DIR})
set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${PROJECT_LIB_DIR}) set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${PROJECT_LIB_DIR})
endif() endif()
@ -33,29 +29,28 @@ set(SOURCE_CPP
src/main.cpp src/main.cpp
) )
#find_package(Qt5 REQUIRED COMPONENTS Core Widget) #find_package(Qt5 REQUIRED COMPONENTS Core Widgets)
add_executable(${PROJECT_NAME} ${HEADER_HPP} ${SOURCE_CPP}) add_executable(${PROJECT_NAME} ${HEADER_HPP} ${SOURCE_CPP})
#add_library(${PROJECT_NAME} SHARED ${HEADER_HPP} ${SOURCE_CPP}) #add_library(${PROJECT_NAME} SHARED ${HEADER_HPP} ${SOURCE_CPP})
#add_library(${PROJECT_NAME} STATIC ${HEADER_HPP} ${SOURCE_CPP}) #add_library(${PROJECT_NAME} STATIC ${HEADER_HPP} ${SOURCE_CPP})
#target_link_directories({PROJECT_NAME} PUBLIC ) #target_link_directories({PROJECT_NAME} PUBLIC )
#target_link_libraries({PROJECT_NAME} PUBLIC Qt5::Core Qt5::Widget) #target_link_libraries(${PROJECT_NAME} PUBLIC Qt5::Core Qt5::Widgets)
target_include_directories(${PROJECT_NAME} PUBLIC include 3rd) target_include_directories(${PROJECT_NAME} PUBLIC include 3rd)
# check mode
if (MSVC) if (MSVC)
add_compile_options($<$<CXX_COMPLIER_ID:MSVC>:/utf-8) add_compile_options($<$<CXX_COMPLIER_ID:MSVC>:/utf-8)
# #
set_target_properties(MyApp PROPERTIES set_target_properties(${PROJECT_NAME} PROPERTIES
VS_DEBUGGER_WORKING_DIRECTORY "${CMAKE_SOURCE_DIR}/bin" VS_DEBUGGER_WORKING_DIRECTORY "${CMAKE_SOURCE_DIR}/bin"
) )
# qt application main # qt application main
target_link_options(MyApp PRIVATE "/SUBSYSTEM:WINDONWS") #target_link_options(${PROJECT_NAME} PRIVATE "/SUBSYSTEM:WINDOWS")
target_link_options(${PROJECT_NAME} PRIVATE "/ENTRY:mainCRTStartup") #target_link_options(${PROJECT_NAME} PRIVATE "/ENTRY:mainCRTStartup")
set(CMAKE_CXX_FLAGS_DEBUG "/MDd /Zi /Ob0 /Od /RTC1") set(CMAKE_CXX_FLAGS_DEBUG "/MDd /Zi /Ob0 /Od /RTC1")
set(CMAKE_CXX_FLAGS_RELEASE "/MD /O2 /Ob2 /DNDEBUG") set(CMAKE_CXX_FLAGS_RELEASE "/MD /O2 /Ob2 /DNDEBUG")
add_compile_options(/utf-8 /source-charset:utf-8 /execution-charset:utf-8) add_compile_options(/utf-8 /source-charset:utf-8 /execution-charset:utf-8)