1cmake_minimum_required(VERSION 3.13 FATAL_ERROR)
2
3project(libs LANGUAGES C)
4
5if($ENV{ENABLE_64})
6  message(STATUS "Building for 64bit")
7else()
8  add_compile_options(-m32)
9  add_link_options(-m32)
10  message(STATUS "Building for 32bit")
11endif()
12message(STATUS "Using toolchain file: ${CMAKE_TOOLCHAIN_FILE}.")
13
14get_filename_component(
15  externals ${CMAKE_CURRENT_SOURCE_DIR}/.. ABSOLUTE)
16
17if(NOT LX_STANDALONE_ENABLE)
18    add_subdirectory(${externals}/threadx threadx)
19endif()
20add_subdirectory(${externals}/filex filex)
21target_compile_options(threadx PRIVATE -DTX_ENABLE_EVENT_TRACE)
22if(NOT DEFINED ENV{ENABLE_IDLE})
23  target_compile_options(threadx PRIVATE -DTX_LINUX_NO_IDLE_ENABLE)
24endif()
25
26
27if((NOT LX_STANDALONE_ENABLE) OR (NOT FX_STANDALONE_ENABLE))
28    foreach(lib threadx filex)
29      get_target_property(dirs ${lib} INCLUDE_DIRECTORIES)
30      execute_process(COMMAND mkdir -p ${CMAKE_BINARY_DIR}/inc)
31      foreach(dir ${dirs})
32        file(GLOB header_files ${dir}/*.h)
33        foreach(header_file ${header_files})
34          execute_process(COMMAND ln -sf ${header_file} ${CMAKE_BINARY_DIR}/inc)
35        endforeach()
36      endforeach()
37    endforeach()
38endif()
39