summaryrefslogtreecommitdiff
path: root/CMakeLists.txt
blob: 0decbc044eaf8c5ce29173b16187c255fe27534d (plain) (blame)
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
cmake_minimum_required(VERSION 3.13)

set(ARCH "arm-dolce-eabi" CACHE STRING "Target architecture")
set(CMAKE_INSTALL_PREFIX "$ENV{DOLCESDK}/" CACHE PATH "Install prefix")

if(DEFINED ENV{DOLCESDK})
  set(_LIBS_GEN "$ENV{DOLCESDK}/bin/dolce-libs-gen")
else()
  set(_LIBS_GEN "dolce-libs-gen")
endif()
set(LIBS_GEN "${_LIBS_GEN}" CACHE STRING "libs-gen command")

include(ProcessorCount)
ProcessorCount(_NPROC)
if(_NPROC EQUAL 0)
  set(_NPROC 1)
endif()
set(NPROC "${_NPROC}" CACHE STRING "Number of processors")

project(dolcesdk-target-headers LANGUAGES NONE)

set(STUBS_DIR stubs)
set(DB_FILE "${CMAKE_SOURCE_DIR}/db.yml")
set(DB_365_FILE "${CMAKE_SOURCE_DIR}/db_365.yml")

add_custom_command(OUTPUT "${STUBS_DIR}"
  DEPENDS "${DB_FILE}" "${DB_365_FILE}"
  COMMAND ${CMAKE_COMMAND} -E make_directory "${STUBS_DIR}"
  COMMAND "${LIBS_GEN}" "${DB_FILE}" "${STUBS_DIR}/cex-3600"
  COMMAND "${LIBS_GEN}" "${DB_365_FILE}" "${STUBS_DIR}/cex-3650"
)

add_custom_target(prepare-stubs
  DEPENDS "${STUBS_DIR}"
  COMMENT "Preparing stubs"
)

add_custom_target(build-stubs
  COMMAND make -C "${STUBS_DIR}/cex-3600" -j "${NPROC}"
  COMMAND make -C "${STUBS_DIR}/cex-3650" -j "${NPROC}"
  COMMENT "Building stubs with ${NPROC} jobs"
)

add_dependencies(build-stubs prepare-stubs)

add_custom_target(install-stubs
  COMMAND make -C "${STUBS_DIR}/cex-3600" install
  COMMAND make -C "${STUBS_DIR}/cex-3650" install
  COMMENT "Install stubs"
)

add_dependencies(install-stubs build-stubs)

install(DIRECTORY include/ DESTINATION "${ARCH}/include")
install(FILES db.yml db_365.yml DESTINATION share)