|
| 1 | +collector_create (PROJECT_LIB_SOURCES "${CMAKE_CURRENT_SOURCE_DIR}") |
| 2 | +collector_create (PROJECT_LIB_HEADERS "${CMAKE_CURRENT_SOURCE_DIR}") |
| 3 | + |
| 4 | +collect (PROJECT_LIB_DIRS "${CMAKE_CURRENT_BINARY_DIR}") |
| 5 | +collect (PROJECT_INC_DIRS "${CMAKE_CURRENT_BINARY_DIR}/include") |
| 6 | + |
| 7 | +collect (PROJECT_LIB_HEADERS alloc.h) |
| 8 | +collect (PROJECT_LIB_HEADERS assert.h) |
| 9 | +collect (PROJECT_LIB_HEADERS atomic.h) |
| 10 | +collect (PROJECT_LIB_HEADERS cache.h) |
| 11 | +collect (PROJECT_LIB_HEADERS compiler.h) |
| 12 | +collect (PROJECT_LIB_HEADERS condition.h) |
| 13 | +collect (PROJECT_LIB_HEADERS config.h) |
| 14 | +collect (PROJECT_LIB_HEADERS cpu.h) |
| 15 | +collect (PROJECT_LIB_HEADERS device.h) |
| 16 | +collect (PROJECT_LIB_HEADERS errno.h) |
| 17 | +collect (PROJECT_LIB_HEADERS dma.h) |
| 18 | +collect (PROJECT_LIB_HEADERS io.h) |
| 19 | +collect (PROJECT_LIB_HEADERS irq.h) |
| 20 | +collect (PROJECT_LIB_HEADERS irq_controller.h) |
| 21 | +collect (PROJECT_LIB_HEADERS list.h) |
| 22 | +collect (PROJECT_LIB_HEADERS log.h) |
| 23 | +collect (PROJECT_LIB_HEADERS mutex.h) |
| 24 | +collect (PROJECT_LIB_HEADERS shmem.h) |
| 25 | +collect (PROJECT_LIB_HEADERS sleep.h) |
| 26 | +collect (PROJECT_LIB_HEADERS softirq.h) |
| 27 | +collect (PROJECT_LIB_HEADERS spinlock.h) |
| 28 | +collect (PROJECT_LIB_HEADERS sys.h) |
| 29 | +collect (PROJECT_LIB_HEADERS time.h) |
| 30 | +collect (PROJECT_LIB_HEADERS utilities.h) |
| 31 | +collect (PROJECT_LIB_HEADERS version.h) |
| 32 | + |
| 33 | +collect (PROJECT_LIB_SOURCES dma.c) |
| 34 | +collect (PROJECT_LIB_SOURCES device.c) |
| 35 | +collect (PROJECT_LIB_SOURCES init.c) |
| 36 | +collect (PROJECT_LIB_SOURCES io.c) |
| 37 | +collect (PROJECT_LIB_SOURCES irq.c) |
| 38 | +collect (PROJECT_LIB_SOURCES log.c) |
| 39 | +collect (PROJECT_LIB_SOURCES shmem.c) |
| 40 | +collect (PROJECT_LIB_SOURCES softirq.c) |
| 41 | +collect (PROJECT_LIB_SOURCES version.c) |
| 42 | + |
| 43 | +add_subdirectory (compiler) |
| 44 | +add_subdirectory (processor) |
| 45 | +add_subdirectory (system) |
| 46 | + |
| 47 | +collector_list (_inc_dirs PROJECT_INC_DIRS) |
| 48 | +collector_list (_sources PROJECT_LIB_SOURCES) |
| 49 | +collector_list (_headers PROJECT_LIB_HEADERS) |
| 50 | +collector_list (_deps PROJECT_LIB_DEPS) |
| 51 | + |
| 52 | +foreach (f ${_headers}) |
| 53 | + configure_file (${f} include/${PROJECT_NAME}/${f} @ONLY) |
| 54 | + install (FILES ${CMAKE_CURRENT_BINARY_DIR}/include/${PROJECT_NAME}/${f} |
| 55 | + DESTINATION ${CMAKE_INCLUDE_PATH} RENAME ${PROJECT_NAME}/${f}) |
| 56 | + if (${f} MATCHES "^[^/]*\\.h") |
| 57 | + collect (PROJECT_HDR_TESTS "metal/${f}") |
| 58 | + endif (${f} MATCHES "^[^/]*\\.h") |
| 59 | +endforeach (f) |
| 60 | + |
| 61 | +include_directories (${_inc_dirs}) |
| 62 | +add_definitions (-DMETAL_INTERNAL) |
| 63 | + |
| 64 | +if (WITH_DEFAULT_LOGGER) |
| 65 | + add_definitions (-DDEFAULT_LOGGER_ON) |
| 66 | +endif (WITH_DEFAULT_LOGGER) |
| 67 | + |
| 68 | +get_property (_ec_flgs GLOBAL PROPERTY "PROJECT_EC_FLAGS") |
| 69 | + |
| 70 | +set (_lib ${PROJECT_NAME}) |
| 71 | + |
| 72 | + |
| 73 | +add_library (${_lib} STATIC ${_sources}) |
| 74 | +install (TARGETS ${_lib} ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}) |
| 75 | +target_compile_options (${_lib} PUBLIC ${_ec_flgs}) |
| 76 | + |
| 77 | +set_target_properties (${_lib} PROPERTIES OUTPUT_NAME "${_lib}") |
| 78 | + |
| 79 | +set_target_properties(${_lib} PROPERTIES ADDITIONAL_CLEAN_FILES "${CMAKE_LIBRARY_PATH}/${_lib}.a;${CMAKE_INCLUDE_PATH}/metal;${clean_headers};${CMAKE_LIBRARY_PATH}/libmetal.a") |
| 80 | +install(TARGETS ${_lib} LIBRARY DESTINATION ${CMAKE_LIBRARY_PATH} ARCHIVE DESTINATION ${CMAKE_LIBRARY_PATH}) |
| 81 | + |
| 82 | +# vim: expandtab:ts=2:sw=2:smartindent |
0 commit comments