• Jialu Xu's avatar
    gen_compile_commands.py: fix path resolve with symlinks in it · 88094615
    Jialu Xu authored
    When a path contains relative symbolic links, os.path.abspath() might
    not follow the symlinks and instead return the absolute path with just
    the relative paths resolved, resulting in an incorrect path.
    
    1. Say "drivers/hdf/" has some symlinks:
    
        # ls -l drivers/hdf/
        total 364
        drwxrwxr-x 2 ...   4096 ... evdev
        lrwxrwxrwx 1 ...     44 ... framework -> ../../../../../../drivers/hdf_core/framework
        -rw-rw-r-- 1 ... 359010 ... hdf_macro_test.h
        lrwxrwxrwx 1 ...     55 ... inner_api -> ../../../../../../drivers/hdf_core/interfaces/inner_api
        lrwxrwxrwx 1 ...     53 ... khdf -> ../../../../../../drivers/hdf_core/adapter/khdf/linux
        -rw-r--r-- 1 ...     74 ... Makefile
        drwxrwxr-x 3 ...   4096 ... wifi
    
    2. One .cmd file records that:
    
        # head -1 ./framework/core/manager/src/.devmgr_service.o.cmd
        cmd_drivers/hdf/khdf/manager/../../../../framework/core/manager/src/devmgr_service.o := ... \
        /path/to/src/drivers/hdf...
    88094615
gen_compile_commands.py 7.9 KB