1cmake_minimum_required(VERSION 3.13 FATAL_ERROR) 2 3project(libs LANGUAGES C) 4 5if($ENV{ENABLE_64}) 6 message(STATUS "Building for 64bit") 7 set(NX_USER_FILE ${CMAKE_CURRENT_SOURCE_DIR}/nx_user.h) 8else() 9 add_compile_options(-m32) 10 add_link_options(-m32) 11 message(STATUS "Building for 32bit") 12endif() 13message(STATUS "Using toolchain file: ${CMAKE_TOOLCHAIN_FILE}.") 14 15get_filename_component(externals ${CMAKE_CURRENT_SOURCE_DIR}/../../../externals 16 ABSOLUTE) 17add_subdirectory(${externals}/threadx threadx) 18add_subdirectory(${externals}/netxduo netxduo) 19add_subdirectory(${externals}/filex filex) 20target_compile_options(threadx PRIVATE -DTX_ENABLE_EVENT_TRACE) 21if(NOT DEFINED ENV{ENABLE_IDLE}) 22 target_compile_options(threadx PRIVATE -DTX_LINUX_NO_IDLE_ENABLE) 23endif() 24target_compile_options(filex PRIVATE -DFX_ENABLE_EXFAT) 25 26target_compile_options(netxduo PRIVATE -DTX_ENABLE_EVENT_TRACE -DNX_PHYSICAL_HEADER=20) 27 28foreach(lib threadx netxduo 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() 37endforeach() 38