1# CMake fragment for MicroPython core py component 2 3set(MICROPY_PY_DIR "${MICROPY_DIR}/py") 4 5list(APPEND MICROPY_INC_CORE "${MICROPY_DIR}") 6 7# All py/ source files 8set(MICROPY_SOURCE_PY 9 ${MICROPY_PY_DIR}/argcheck.c 10 ${MICROPY_PY_DIR}/asmarm.c 11 ${MICROPY_PY_DIR}/asmbase.c 12 ${MICROPY_PY_DIR}/asmthumb.c 13 ${MICROPY_PY_DIR}/asmx64.c 14 ${MICROPY_PY_DIR}/asmx86.c 15 ${MICROPY_PY_DIR}/asmxtensa.c 16 ${MICROPY_PY_DIR}/bc.c 17 ${MICROPY_PY_DIR}/binary.c 18 ${MICROPY_PY_DIR}/builtinevex.c 19 ${MICROPY_PY_DIR}/builtinhelp.c 20 ${MICROPY_PY_DIR}/builtinimport.c 21 ${MICROPY_PY_DIR}/compile.c 22 ${MICROPY_PY_DIR}/emitbc.c 23 ${MICROPY_PY_DIR}/emitcommon.c 24 ${MICROPY_PY_DIR}/emitglue.c 25 ${MICROPY_PY_DIR}/emitinlinethumb.c 26 ${MICROPY_PY_DIR}/emitinlinextensa.c 27 ${MICROPY_PY_DIR}/emitnarm.c 28 ${MICROPY_PY_DIR}/emitnthumb.c 29 ${MICROPY_PY_DIR}/emitnx64.c 30 ${MICROPY_PY_DIR}/emitnx86.c 31 ${MICROPY_PY_DIR}/emitnxtensa.c 32 ${MICROPY_PY_DIR}/emitnxtensawin.c 33 ${MICROPY_PY_DIR}/formatfloat.c 34 ${MICROPY_PY_DIR}/frozenmod.c 35 ${MICROPY_PY_DIR}/gc.c 36 ${MICROPY_PY_DIR}/lexer.c 37 ${MICROPY_PY_DIR}/malloc.c 38 ${MICROPY_PY_DIR}/map.c 39 ${MICROPY_PY_DIR}/modarray.c 40 ${MICROPY_PY_DIR}/modbuiltins.c 41 ${MICROPY_PY_DIR}/modcmath.c 42 ${MICROPY_PY_DIR}/modcollections.c 43 ${MICROPY_PY_DIR}/modgc.c 44 ${MICROPY_PY_DIR}/modio.c 45 ${MICROPY_PY_DIR}/modmath.c 46 ${MICROPY_PY_DIR}/modmicropython.c 47 ${MICROPY_PY_DIR}/modstruct.c 48 ${MICROPY_PY_DIR}/modsys.c 49 ${MICROPY_PY_DIR}/modthread.c 50 ${MICROPY_PY_DIR}/moduerrno.c 51 ${MICROPY_PY_DIR}/mpprint.c 52 ${MICROPY_PY_DIR}/mpstate.c 53 ${MICROPY_PY_DIR}/mpz.c 54 ${MICROPY_PY_DIR}/nativeglue.c 55 ${MICROPY_PY_DIR}/nlr.c 56 ${MICROPY_PY_DIR}/nlrpowerpc.c 57 ${MICROPY_PY_DIR}/nlrsetjmp.c 58 ${MICROPY_PY_DIR}/nlrthumb.c 59 ${MICROPY_PY_DIR}/nlrx64.c 60 ${MICROPY_PY_DIR}/nlrx86.c 61 ${MICROPY_PY_DIR}/nlrxtensa.c 62 ${MICROPY_PY_DIR}/obj.c 63 ${MICROPY_PY_DIR}/objarray.c 64 ${MICROPY_PY_DIR}/objattrtuple.c 65 ${MICROPY_PY_DIR}/objbool.c 66 ${MICROPY_PY_DIR}/objboundmeth.c 67 ${MICROPY_PY_DIR}/objcell.c 68 ${MICROPY_PY_DIR}/objclosure.c 69 ${MICROPY_PY_DIR}/objcomplex.c 70 ${MICROPY_PY_DIR}/objdeque.c 71 ${MICROPY_PY_DIR}/objdict.c 72 ${MICROPY_PY_DIR}/objenumerate.c 73 ${MICROPY_PY_DIR}/objexcept.c 74 ${MICROPY_PY_DIR}/objfilter.c 75 ${MICROPY_PY_DIR}/objfloat.c 76 ${MICROPY_PY_DIR}/objfun.c 77 ${MICROPY_PY_DIR}/objgenerator.c 78 ${MICROPY_PY_DIR}/objgetitemiter.c 79 ${MICROPY_PY_DIR}/objint.c 80 ${MICROPY_PY_DIR}/objint_longlong.c 81 ${MICROPY_PY_DIR}/objint_mpz.c 82 ${MICROPY_PY_DIR}/objlist.c 83 ${MICROPY_PY_DIR}/objmap.c 84 ${MICROPY_PY_DIR}/objmodule.c 85 ${MICROPY_PY_DIR}/objnamedtuple.c 86 ${MICROPY_PY_DIR}/objnone.c 87 ${MICROPY_PY_DIR}/objobject.c 88 ${MICROPY_PY_DIR}/objpolyiter.c 89 ${MICROPY_PY_DIR}/objproperty.c 90 ${MICROPY_PY_DIR}/objrange.c 91 ${MICROPY_PY_DIR}/objreversed.c 92 ${MICROPY_PY_DIR}/objset.c 93 ${MICROPY_PY_DIR}/objsingleton.c 94 ${MICROPY_PY_DIR}/objslice.c 95 ${MICROPY_PY_DIR}/objstr.c 96 ${MICROPY_PY_DIR}/objstringio.c 97 ${MICROPY_PY_DIR}/objstrunicode.c 98 ${MICROPY_PY_DIR}/objtuple.c 99 ${MICROPY_PY_DIR}/objtype.c 100 ${MICROPY_PY_DIR}/objzip.c 101 ${MICROPY_PY_DIR}/opmethods.c 102 ${MICROPY_PY_DIR}/pairheap.c 103 ${MICROPY_PY_DIR}/parse.c 104 ${MICROPY_PY_DIR}/parsenum.c 105 ${MICROPY_PY_DIR}/parsenumbase.c 106 ${MICROPY_PY_DIR}/persistentcode.c 107 ${MICROPY_PY_DIR}/profile.c 108 ${MICROPY_PY_DIR}/pystack.c 109 ${MICROPY_PY_DIR}/qstr.c 110 ${MICROPY_PY_DIR}/reader.c 111 ${MICROPY_PY_DIR}/repl.c 112 ${MICROPY_PY_DIR}/ringbuf.c 113 ${MICROPY_PY_DIR}/runtime.c 114 ${MICROPY_PY_DIR}/runtime_utils.c 115 ${MICROPY_PY_DIR}/scheduler.c 116 ${MICROPY_PY_DIR}/scope.c 117 ${MICROPY_PY_DIR}/sequence.c 118 ${MICROPY_PY_DIR}/showbc.c 119 ${MICROPY_PY_DIR}/smallint.c 120 ${MICROPY_PY_DIR}/stackctrl.c 121 ${MICROPY_PY_DIR}/stream.c 122 ${MICROPY_PY_DIR}/unicode.c 123 ${MICROPY_PY_DIR}/vm.c 124 ${MICROPY_PY_DIR}/vstr.c 125 ${MICROPY_PY_DIR}/warning.c 126) 127 128# Helper macro to collect include directories and compile definitions for qstr processing. 129macro(micropy_gather_target_properties targ) 130 if(TARGET ${targ}) 131 get_target_property(type ${targ} TYPE) 132 set(_inc OFF) 133 set(_def OFF) 134 if(${type} STREQUAL STATIC_LIBRARY) 135 get_target_property(_inc ${targ} INCLUDE_DIRECTORIES) 136 get_target_property(_def ${targ} COMPILE_DEFINITIONS) 137 elseif(${type} STREQUAL INTERFACE_LIBRARY) 138 get_target_property(_inc ${targ} INTERFACE_INCLUDE_DIRECTORIES) 139 get_target_property(_def ${targ} INTERFACE_COMPILE_DEFINITIONS) 140 endif() 141 if(_inc) 142 list(APPEND MICROPY_CPP_INC_EXTRA ${_inc}) 143 endif() 144 if(_def) 145 list(APPEND MICROPY_CPP_DEF_EXTRA ${_def}) 146 endif() 147 endif() 148endmacro() 149