编写wxWidget Hello World程序

将获取源文件函数移到单独的cmake文件
编写平台相关宏
This commit is contained in:
Nanako 2024-05-16 20:30:07 +08:00
parent 948bb17e1d
commit 6a3e65ca40
2 changed files with 11 additions and 54 deletions

View File

@ -1,60 +1,7 @@
cmake_minimum_required(VERSION 3.5)
project(arona_core)
function(retrieve_files path out_files)
message(STATUS "Retrieving files in ${path}")
# .h .hpp. ini HEAD_FILES
file(GLOB_RECURSE HEAD_FILES RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} CONFIGURE_DEPENDS ${path}/*.h ${path}/*.hpp ${path}/*.ini)
# *.cpp *.c SRC_FILES
file(GLOB_RECURSE SRC_FILES RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} CONFIGURE_DEPENDS ${path}/*.cpp ${path}*.c ${path}*.ixx)
# HEDADER_FILES SRC_FILES ALL_FILES
set(ALL_FILES ${HEAD_FILES} ${SRC_FILES})
set(RESULT "")
# ALL_FILES 变量里面的所有文件分类(保留资源管理器的目录结构)
foreach(fileItem ${ALL_FILES})
# Get the directory of the source file
get_filename_component(PARENT_DIR "${fileItem}" DIRECTORY)
#
if(PARENT_DIR STREQUAL "windows")
if(WIN32)
set(RESULT "${RESULT};${fileItem}")
else()
continue()
endif()
elseif(PARENT_DIR STREQUAL "linux")
if(UNIX AND NOT APPLE)
set(RESULT "${RESULT};${fileItem}")
else()
continue()
endif()
elseif(PARENT_DIR STREQUAL "mac")
if(APPLE)
set(RESULT "${RESULT};${fileItem}")
else()
continue()
endif()
else()
#
set(RESULT "${RESULT};${fileItem}")
endif()
# Remove common directory prefix to make the group
string(REPLACE "${path}" "" GROUP "${PARENT_DIR}")
# Make sure we are using windows slashes
string(REPLACE "/" "\\" GROUP "${GROUP}")
# Group into "Source Files" and "Header Files"
set(GROUP "${GROUP}")
source_group("${GROUP}" FILES "${fileItem}")
endforeach()
set(${out_files} ${RESULT} PARENT_SCOPE)
endfunction()
include(cmake/retrieve_files.cmake)
# setup rtaudio
if (WIN32)
@ -89,3 +36,4 @@ add_subdirectory(third_party/rtaudio)
add_subdirectory(third_party/spdlog)
add_subdirectory(third_party/mempool)
add_subdirectory(third_party/taskflow)

View File

@ -23,3 +23,12 @@ if (MSVC)
${CMAKE_BINARY_DIR}/bin
)
endif ()
# platform micros
if (WIN32)
target_compile_definitions(${PROJECT_NAME} PUBLIC PLATFORM_WINDOWS=1 PLATFORM_MACOS=0 PLATFORM_LINUX=0)
elseif(APPLE)
target_compile_definitions(${PROJECT_NAME} PUBLIC PLATFORM_WINDOWS=0 PLATFORM_MACOS=1 PLATFORM_LINUX=0)
elseif(UNIX AND NOT APPLE)
target_compile_definitions(${PROJECT_NAME} PUBLIC PLATFORM_WINDOWS=0 PLATFORM_MACOS=0 PLATFORM_LINUX=1)
endif()