-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathCMakeLists.txt
61 lines (45 loc) · 1.72 KB
/
CMakeLists.txt
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
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
cmake_minimum_required(VERSION 3.20)
message(STATUS "# start cmake::main")
project(xmat VERSION 0.1.0 LANGUAGES CXX)
set(CMAKE_CXX_STANDARD 14)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
set(CMAKE_CXX_EXTENSIONS OFF)
include(TestBigEndian)
test_big_endian(XMAT_IS_BIG_ENDIAN)
add_compile_definitions(XMAT_IS_BIG_ENDIAN=${XMAT_IS_BIG_ENDIAN})
# temp files directory
# ====================
message(STATUS "## write paths to temporary data")
file(RELATIVE_PATH relative_build_dir0 ${CMAKE_BINARY_DIR} ${CMAKE_SOURCE_DIR})
file(RELATIVE_PATH relative_build_dir1 ${CMAKE_SOURCE_DIR} ${CMAKE_BINARY_DIR})
message(STATUS "${relative_build_dir0}")
message(STATUS "${relative_build_dir1}")
set(XMAT_DATA "data")
cmake_path(ABSOLUTE_PATH XMAT_DATA OUTPUT_VARIABLE XMAT_DATA_ABS)
message(STATUS "${XMAT_DATA_ABS}")
## cpp
set(xmat_content_temp_folder_cpp__ [[
// auto-generated by cmake
#pragma once
const char* const data_folder = R"(${XMAT_DATA_ABS}/)";
]])
string(CONFIGURE "${xmat_content_temp_folder_cpp__}" xmat_content_temp_folder_cpp)
file(WRITE "cpp/examples/temp_data_folder.hpp" "${xmat_content_temp_folder_cpp}")
set(XMAT_DATA_CPP "")
cmake_path(APPEND XMAT_DATA_CPP "data" "cpp")
message(STATUS "## [append] data/cpp:: ${XMAT_DATA_CPP}")
file(MAKE_DIRECTORY "${XMAT_DATA_CPP}")
## matlab
set(xmat_content_temp_folder_matlab__ [[
function folder = temp_data_folder()
% auto-generated by cmake
folder = '${XMAT_DATA_ABS}/';
end
]])
string(CONFIGURE "${xmat_content_temp_folder_matlab__}" xmat_content_temp_folder_matlab)
file(WRITE "matlab/examples/temp_data_folder.m" "${xmat_content_temp_folder_matlab}")
## add subdirectories
# ===================
message(STATUS "## [start] add subdirs")
add_subdirectory(cpp)
message(STATUS "## [end] add subdirs")