commit 6407d59572aa8a8976388e7c42782b4c4a886c2a Author: lexiaoyao Date: Wed Nov 26 22:35:49 2025 +0800 feat: cmake template unix system commit diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..348c102 --- /dev/null +++ b/.gitignore @@ -0,0 +1,2 @@ +/build +/bin diff --git a/3rd/.gitkeep b/3rd/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/CMakeLists.txt b/CMakeLists.txt new file mode 100644 index 0000000..71ca3c9 --- /dev/null +++ b/CMakeLists.txt @@ -0,0 +1,65 @@ +cmake_minimum_required(VERSION 3.16) +project(MyProject VERSION 1.0.0 LANGUAGES CXX) + +set(CMAKE_CXX_STANDARD 11) +set(CMAKE_CXX_STANDARD_REQUIRED ON) +set(CMAKE_CXX_EXTENSIONS OFF) +#set(CMAKE_AUTOMOC ON) +#set(CMAKE_AUTORCC ON) +#set(CMAKE_AUTOUIC ON) +set(PROJECT_OUTPUT_DIR ${CMAKE_SOURCE_DIR}/bin) +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) + set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${PROJECT_OUTPUT_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}) +elseif(CMAKE_CXX_COMPILER_ID MATCHES MSVC) + set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${PORJECT_OUTPUT_DIR}) + set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${PROJECT_LIB_DIR}) + set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${PROJECT_LIB_DIR}) +endif() + + + +set(HEADER_HPP + +) +set(SOURCE_CPP + src/main.cpp +) + +#find_package(Qt5 REQUIRED COMPONENTS Core Widget) + +add_executable(${PROJECT_NAME} ${HEADER_HPP} ${SOURCE_CPP}) +#add_library(${PROJECT_NAME} SHARED ${HEADER_HPP} ${SOURCE_CPP}) +#add_library(${PROJECT_NAME} STATIC ${HEADER_HPP} ${SOURCE_CPP}) + +#target_link_directories({PROJECT_NAME} PUBLIC ) +#target_link_libraries({PROJECT_NAME} PUBLIC Qt5::Core Qt5::Widget) +target_include_directories(${PROJECT_NAME} PUBLIC include 3rd) + +# check mode + +if (MSVC) + add_compile_options($<$:/utf-8) + + # 配置调试路径 + set_target_properties(MyApp PROPERTIES + VS_DEBUGGER_WORKING_DIRECTORY "${CMAKE_SOURCE_DIR}/bin" + ) + + # qt application main + target_link_options(MyApp PRIVATE "/SUBSYSTEM:WINDONWS") + target_link_options(${PROJECT_NAME} PRIVATE "/ENTRY:mainCRTStartup") + set(CMAKE_CXX_FLAGS_DEBUG "/MDd /Zi /Ob0 /Od /RTC1") + set(CMAKE_CXX_FLAGS_RELEASE "/MD /O2 /Ob2 /DNDEBUG") + add_compile_options(/utf-8 /source-charset:utf-8 /execution-charset:utf-8) + add_compile_definitions(_UNICODE UNICODE) +endif() + +set_property(GLOBAL PROPERTY USE_FOLDERS_ON) diff --git a/include/.gitkeep b/include/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/lib/.gitkeep b/lib/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/src/.gitkeep b/src/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/src/main.cpp b/src/main.cpp new file mode 100644 index 0000000..585d873 --- /dev/null +++ b/src/main.cpp @@ -0,0 +1,7 @@ +#include + + +int main(int argc, char** argv) { + std::cout << "hello dyz" << '\n'; + return 0; +}