generated from jamesnulliu/VSC-Python-Project-Template
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathCMakeLists.txt
More file actions
46 lines (35 loc) · 1.45 KB
/
CMakeLists.txt
File metadata and controls
46 lines (35 loc) · 1.45 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
# Minimum required CMake version
cmake_minimum_required(VERSION 3.30)
# Project Name and version
project(PMPP VERSION 1.0.0)
# Common utility functions
include(${PROJECT_SOURCE_DIR}/cmake/utils/common.cmake)
log_info("CMake Tookchain File Path: ${CMAKE_TOOLCHAIN_FILE}")
set(CMAKE_EXPORT_COMPILE_COMMANDS ON)
set_default_values(
PROJECT_NAMESPACE "pmpp::"
STDOUT_IS_TERMINAL OFF
CMAKE_EXECUTABLE_SUFFIX ""
)
# Utility functions for installing libraries:
include(${PROJECT_SOURCE_DIR}/cmake/utils/lib-install.cmake)
# Compiler configurations for cpp, e.g., g++, clang++, msvc(cl), etc.
include(${PROJECT_SOURCE_DIR}/cmake/compilers/cxx-compiler-configs.cmake)
# Compiler configurations for Python and PyTorch(with CUDA):
include(${PROJECT_SOURCE_DIR}/cmake/compilers/cuda-compiler-configs.cmake)
include(${PROJECT_SOURCE_DIR}/cmake/libraries/libpython.cmake)
include(${PROJECT_SOURCE_DIR}/cmake/libraries/libtorch.cmake)
# The following libraries are managed by vcpkg
find_package(cxxopts CONFIG REQUIRED)
find_package(fmt CONFIG REQUIRED)
find_package(spdlog CONFIG REQUIRED)
find_package(proxy CONFIG REQUIRED)
find_package(yaml-cpp CONFIG REQUIRED)
enable_testing()
find_package(GTest CONFIG REQUIRED)
add_subdirectory(${PROJECT_SOURCE_DIR}/lib)
add_subdirectory(${PROJECT_SOURCE_DIR}/test)
set(CMAKE_CTEST_COMMAND ctest)
add_custom_target(check
COMMAND ${CMAKE_CTEST_COMMAND} --output-on-failure --test-dir ${CMAKE_CURRENT_BINARY_DIR}
DEPENDS all)