platformio_pre.py
This commit is contained in:
85
platformio_pre.py
Normal file
85
platformio_pre.py
Normal file
@@ -0,0 +1,85 @@
|
||||
import os
|
||||
import glob
|
||||
import shutil
|
||||
import re
|
||||
|
||||
# The list of items
|
||||
files = glob.glob('libs/main/*/*.h', recursive=True)
|
||||
files += glob.glob('libs/main/*.h', recursive=True)
|
||||
|
||||
tdir = './include/'
|
||||
|
||||
if os.path.exists(tdir):
|
||||
shutil.rmtree(tdir)
|
||||
|
||||
os.mkdir(tdir)
|
||||
|
||||
for filename in files:
|
||||
shutil.copy(filename, tdir)
|
||||
|
||||
with open(tdir+'pip_defs.h', 'w') as f:
|
||||
f.write('// This file was generated by PlatformIO, don`t edit it!')
|
||||
|
||||
with open(tdir+'pip_export.h', 'w') as f:
|
||||
f.write('''
|
||||
#ifndef PIP_EXPORT_H
|
||||
#define PIP_EXPORT_H
|
||||
|
||||
# define PIP_EXPORT
|
||||
# define PIP_NO_EXPORT
|
||||
|
||||
|
||||
#ifndef PIP_DEPRECATED
|
||||
# define PIP_DEPRECATED __attribute__ ((__deprecated__))
|
||||
#endif
|
||||
|
||||
#ifndef PIP_DEPRECATED_EXPORT
|
||||
# define PIP_DEPRECATED_EXPORT PIP_EXPORT PIP_DEPRECATED
|
||||
#endif
|
||||
|
||||
#ifndef PIP_DEPRECATED_NO_EXPORT
|
||||
# define PIP_DEPRECATED_NO_EXPORT PIP_NO_EXPORT PIP_DEPRECATED
|
||||
#endif
|
||||
|
||||
#endif /* PIP_EXPORT_H */
|
||||
''')
|
||||
|
||||
version_h = '''
|
||||
#ifndef PIP_VERSION_H
|
||||
#define PIP_VERSION_H
|
||||
|
||||
|
||||
// Project
|
||||
|
||||
#define PIP_VERSION_MAJOR ${VERSION_MAJOR}
|
||||
#define PIP_VERSION_MINOR ${VERSION_MINOR}
|
||||
#define PIP_VERSION_REVISION ${VERSION_REVISION}
|
||||
#define PIP_VERSION_BUILD 0
|
||||
#define PIP_VERSION_SUFFIX \"${VERSION_SUFFIX}\"
|
||||
#define PIP_VERSION_NAME \"${VERSION}\"
|
||||
#define PIP_MAKE_VERSION(major, minor, revision) ((major << 16) | (minor << 8) | revision)
|
||||
#define PIP_VERSION PIP_MAKE_VERSION(PIP_VERSION_MAJOR, PIP_VERSION_MINOR, PIP_VERSION_REVISION)
|
||||
|
||||
#endif // PIP_VERSION_H
|
||||
'''
|
||||
|
||||
with open('CMakeLists.txt') as cm:
|
||||
str = cm.read()
|
||||
v_major = re.findall(r'pip_MAJOR\s+(\d+)\)', str)
|
||||
v_minor = re.findall(r'pip_MINOR\s+(\d+)\)', str)
|
||||
v_rev = re.findall(r'pip_REVISION\s+(\d+)\)', str)
|
||||
v_suffix = re.findall(r'pip_SUFFIX\s+(\w+)\)', str)
|
||||
ver = ''
|
||||
ver = v_major[0]+'.'+v_minor[0]+'.'+v_rev[0]
|
||||
version_h.replace('${VERSION_MAJOR}', v_major[0])
|
||||
version_h.replace('${VERSION_MINOR}', v_minor[0])
|
||||
version_h.replace('${VERSION_REVISION}', v_rev[0])
|
||||
if len(v_suffix):
|
||||
ver += v_suffix[0]
|
||||
version_h.replace('${VERSION_SUFFIX}', v_suffix[0])
|
||||
else:
|
||||
version_h.replace('${VERSION_SUFFIX}', '')
|
||||
print('PIP version = '+ver)
|
||||
with open(tdir+'pip_version.h', 'w') as f:
|
||||
f.write(version_h)
|
||||
|
||||
Reference in New Issue
Block a user