64 lines
2.2 KiB
CMake
64 lines
2.2 KiB
CMake
#cmake version
|
|
cmake_minimum_required(VERSION 3.31)
|
|
|
|
#project name
|
|
project(TSE_Editor)
|
|
|
|
#cpp settings
|
|
find_program(CLANG_C NAMES clang)
|
|
find_program(CLANG_CXX NAMES clang++)
|
|
|
|
if(CLANG_C AND CLANG_CXX)
|
|
message(STATUS "foung Clang, using as Compiler")
|
|
set(CMAKE_C_COMPILER ${CLANG_C} CACHE STRING "C Compiler" FORCE)
|
|
set(CMAKE_CXX_COMPILER ${CLANG_CXX} CACHE STRING "C++ Compiler" FORCE)
|
|
else()
|
|
message(STATUS "Clang not found, using Standard-Compiler")
|
|
endif()
|
|
set(CMAKE_CXX_STANDARD 20)
|
|
set(CMAKE_CXX_STANDARD_REQUIRED True)
|
|
|
|
#project output settings
|
|
set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY "${PROJECT_SOURCE_DIR}/lib")
|
|
set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY_DEBUG "${PROJECT_SOURCE_DIR}/lib/Debug")
|
|
set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY_RELEASE "${PROJECT_SOURCE_DIR}/lib/Release")
|
|
set(CMAKE_LIBRARY_OUTPUT_DIRECTORY "${PROJECT_SOURCE_DIR}/lib")
|
|
set(CMAKE_LIBRARY_OUTPUT_DIRECTORY_DEBUG "${PROJECT_SOURCE_DIR}/lib/Debug")
|
|
set(CMAKE_LIBRARY_OUTPUT_DIRECTORY_RELEASE "${PROJECT_SOURCE_DIR}/lib/Release")
|
|
|
|
#source files
|
|
file(GLOB CPP_SOURCE_TSE
|
|
"${PROJECT_SOURCE_DIR}/src/*.cpp"
|
|
"${PROJECT_SOURCE_DIR}/src/*/*.cpp"
|
|
"${PROJECT_SOURCE_DIR}/src/*/*/*.cpp"
|
|
"${PROJECT_SOURCE_DIR}/src/*/*/*/*.cpp"
|
|
"${PROJECT_SOURCE_DIR}/src/*.c"
|
|
"${PROJECT_SOURCE_DIR}/src/*/*.c"
|
|
"${PROJECT_SOURCE_DIR}/src/*/*/*.c"
|
|
"${PROJECT_SOURCE_DIR}/src/*/*/*/*.c"
|
|
)
|
|
|
|
#includes
|
|
include_directories(${PROJECT_SOURCE_DIR}/src)
|
|
include_directories(${PROJECT_SOURCE_DIR}/include)
|
|
include_directories(${PROJECT_SOURCE_DIR}/../TSE_Base/src)
|
|
include_directories(${PROJECT_SOURCE_DIR}/../TSE_Base/include)
|
|
include_directories(${PROJECT_SOURCE_DIR}/../TSE_Math/src)
|
|
include_directories(${PROJECT_SOURCE_DIR}/../TSE_Core/src)
|
|
include_directories(${PROJECT_SOURCE_DIR}/../TSE_Core/include)
|
|
include_directories(${PROJECT_SOURCE_DIR}/../TSE_GlfwImpl/src)
|
|
include_directories(${PROJECT_SOURCE_DIR}/../TSE_GlfwImpl/include)
|
|
include_directories(${PROJECT_SOURCE_DIR}/../TSE_GlfwOpenGlImpl/src)
|
|
include_directories(${PROJECT_SOURCE_DIR}/../TSE_GlfwOpenGlImpl/include)
|
|
|
|
#project def
|
|
if(Lib)
|
|
add_library(TSE_Editor SHARED ${CPP_SOURCE_TSE})
|
|
else()
|
|
add_library(TSE_Editor STATIC ${CPP_SOURCE_TSE})
|
|
endif()
|
|
|
|
#flags
|
|
target_compile_options(TSE_Editor PRIVATE -march=native)
|
|
|