mirror of https://github.com/ARMmbed/mbed-os.git
				
				
				
			restructure - Added single-nested inc_dir support to legacy build_lib
Added single-nested include directories to libraries built with the legacy build_lib function. Unfortunately, to get this working without a significant rewrite of the legacy build tools, library header files are just duplicated in the precompile stage.pull/2878/head
							parent
							
								
									04a2af7395
								
							
						
					
					
						commit
						a7ddc46caf
					
				
							
								
								
									
										2
									
								
								mbed.h
								
								
								
								
							
							
						
						
									
										2
									
								
								mbed.h
								
								
								
								
							| 
						 | 
				
			
			@ -19,7 +19,7 @@
 | 
			
		|||
#define MBED_LIBRARY_VERSION 123
 | 
			
		||||
 | 
			
		||||
#if MBED_CONF_RTOS_PRESENT
 | 
			
		||||
#include "rtos.h"
 | 
			
		||||
#include "rtos/rtos.h"
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#if MBED_CONF_NSAPI_PRESENT
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -26,7 +26,9 @@ from time import time
 | 
			
		|||
from tools.utils import mkdir, run_cmd, run_cmd_ext, NotSupportedException,\
 | 
			
		||||
    ToolException, InvalidReleaseTargetException
 | 
			
		||||
from tools.paths import MBED_TARGETS_PATH, MBED_LIBRARIES, MBED_HEADER,\
 | 
			
		||||
    MBED_DRIVERS, MBED_PLATFORM, MBED_HAL, MBED_CONFIG_FILE
 | 
			
		||||
    MBED_DRIVERS, MBED_PLATFORM, MBED_HAL, MBED_CONFIG_FILE,\
 | 
			
		||||
    MBED_LIBRARIES_DRIVERS, MBED_LIBRARIES_PLATFORM, MBED_LIBRARIES_HAL,\
 | 
			
		||||
    BUILD_DIR
 | 
			
		||||
from tools.targets import TARGET_NAMES, TARGET_MAP
 | 
			
		||||
from tools.libraries import Library
 | 
			
		||||
from tools.toolchains import TOOLCHAIN_CLASSES
 | 
			
		||||
| 
						 | 
				
			
			@ -772,6 +774,8 @@ def build_lib(lib_id, target, toolchain_name, verbose=False,
 | 
			
		|||
        for resource in resources:
 | 
			
		||||
            toolchain.copy_files(resource.headers, build_path,
 | 
			
		||||
                                 resources=resource)
 | 
			
		||||
            toolchain.copy_files(resource.headers, join(build_path, name),
 | 
			
		||||
                                 resources=resource)
 | 
			
		||||
 | 
			
		||||
        dependencies_include_dir.extend(
 | 
			
		||||
            toolchain.scan_resources(build_path).inc_dirs)
 | 
			
		||||
| 
						 | 
				
			
			@ -905,12 +909,12 @@ def build_mbed_libs(target, toolchain_name, verbose=False,
 | 
			
		|||
 | 
			
		||||
        # Common Headers
 | 
			
		||||
        toolchain.copy_files([MBED_HEADER], MBED_LIBRARIES)
 | 
			
		||||
        toolchain.copy_files(toolchain.scan_resources(MBED_DRIVERS).headers,
 | 
			
		||||
                             MBED_LIBRARIES)
 | 
			
		||||
        toolchain.copy_files(toolchain.scan_resources(MBED_PLATFORM).headers,
 | 
			
		||||
                             MBED_LIBRARIES)
 | 
			
		||||
        toolchain.copy_files(toolchain.scan_resources(MBED_HAL).headers,
 | 
			
		||||
                             MBED_LIBRARIES)
 | 
			
		||||
        for dir, dest in [(MBED_DRIVERS, MBED_LIBRARIES_DRIVERS),
 | 
			
		||||
                          (MBED_PLATFORM, MBED_LIBRARIES_PLATFORM),
 | 
			
		||||
                          (MBED_HAL, MBED_LIBRARIES_HAL)]:
 | 
			
		||||
            resources = toolchain.scan_resources(dir)
 | 
			
		||||
            toolchain.copy_files(resources.headers, MBED_LIBRARIES)
 | 
			
		||||
            toolchain.copy_files(resources.headers, dest)
 | 
			
		||||
 | 
			
		||||
        # Target specific sources
 | 
			
		||||
        hal_src = MBED_TARGETS_PATH
 | 
			
		||||
| 
						 | 
				
			
			@ -925,14 +929,14 @@ def build_mbed_libs(target, toolchain_name, verbose=False,
 | 
			
		|||
                                            [MBED_LIBRARIES] + incdirs)
 | 
			
		||||
 | 
			
		||||
        # Common Sources
 | 
			
		||||
        mbed_resources = toolchain.scan_resources(MBED_DRIVERS)
 | 
			
		||||
        mbed_resources += toolchain.scan_resources(MBED_PLATFORM)
 | 
			
		||||
        mbed_resources += toolchain.scan_resources(MBED_HAL)
 | 
			
		||||
        mbed_resources = None
 | 
			
		||||
        for dir in [MBED_DRIVERS, MBED_PLATFORM, MBED_HAL]:
 | 
			
		||||
            mbed_resources += toolchain.scan_resources(dir)
 | 
			
		||||
 | 
			
		||||
        objects += toolchain.compile_sources(mbed_resources, tmp_path,
 | 
			
		||||
                                             [MBED_LIBRARIES] + incdirs)
 | 
			
		||||
                [MBED_LIBRARIES] + incdirs)
 | 
			
		||||
 | 
			
		||||
        # A number of compiled files need to be copied as objects as opposed to
 | 
			
		||||
        # being part of the mbed library, for reasons that have to do with the
 | 
			
		||||
        # way the linker search for symbols in archives. These are:
 | 
			
		||||
        #   - retarget.o: to make sure that the C standard lib symbols get
 | 
			
		||||
        #                 overridden
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -14,8 +14,8 @@ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 | 
			
		|||
See the License for the specific language governing permissions and
 | 
			
		||||
limitations under the License.
 | 
			
		||||
"""
 | 
			
		||||
from tools.paths import MBED_RTX, RTOS_LIBRARIES, MBED_LIBRARIES, MBED_RPC,\
 | 
			
		||||
    RTOS_ABSTRACTION, RPC_LIBRARY, USB, USB_LIBRARIES, USB_HOST,\
 | 
			
		||||
from tools.paths import MBED_RTX, RTOS, RTOS_LIBRARIES, MBED_LIBRARIES,\
 | 
			
		||||
    MBED_RPC, RPC_LIBRARY, USB, USB_LIBRARIES, USB_HOST,\
 | 
			
		||||
    USB_HOST_LIBRARIES, FAT_FS, DSP_ABSTRACTION, DSP_CMSIS, DSP_LIBRARIES,\
 | 
			
		||||
    SD_FS, FS_LIBRARY, ETH_SOURCES, LWIP_SOURCES, ETH_LIBRARY, UBLOX_SOURCES,\
 | 
			
		||||
    UBLOX_LIBRARY, CELLULAR_SOURCES, CELLULAR_USB_SOURCES, CPPUTEST_SRC,\
 | 
			
		||||
| 
						 | 
				
			
			@ -36,7 +36,7 @@ LIBRARIES = [
 | 
			
		|||
    },
 | 
			
		||||
    {
 | 
			
		||||
        "id": "rtos",
 | 
			
		||||
        "source_dir": RTOS_ABSTRACTION,
 | 
			
		||||
        "source_dir": RTOS,
 | 
			
		||||
        "build_dir": RTOS_LIBRARIES,
 | 
			
		||||
        "dependencies": [MBED_LIBRARIES, MBED_RTX],
 | 
			
		||||
    },
 | 
			
		||||
| 
						 | 
				
			
			@ -62,7 +62,7 @@ LIBRARIES = [
 | 
			
		|||
        "id": "usb_host",
 | 
			
		||||
        "source_dir": USB_HOST,
 | 
			
		||||
        "build_dir": USB_HOST_LIBRARIES,
 | 
			
		||||
        "dependencies": [MBED_LIBRARIES, FAT_FS, MBED_RTX, RTOS_ABSTRACTION],
 | 
			
		||||
        "dependencies": [MBED_LIBRARIES, FAT_FS, MBED_RTX, RTOS_LIBRARIES],
 | 
			
		||||
    },
 | 
			
		||||
 | 
			
		||||
    # DSP libraries
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -39,6 +39,9 @@ MBED_HAL = join(ROOT, "hal")
 | 
			
		|||
MBED_TARGETS_PATH = join(ROOT, "targets")
 | 
			
		||||
 | 
			
		||||
MBED_LIBRARIES = join(BUILD_DIR, "mbed")
 | 
			
		||||
MBED_LIBRARIES_DRIVERS = join(MBED_LIBRARIES, "drivers")
 | 
			
		||||
MBED_LIBRARIES_PLATFORM = join(MBED_LIBRARIES, "platform")
 | 
			
		||||
MBED_LIBRARIES_HAL = join(MBED_LIBRARIES, "hal")
 | 
			
		||||
 | 
			
		||||
MBED_CONFIG_FILE = join(ROOT, "platform/mbed_lib.json")
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -54,7 +57,6 @@ RPC_LIBRARY = join(BUILD_DIR, "rpc")
 | 
			
		|||
# mbed RTOS
 | 
			
		||||
RTOS = join(ROOT, "rtos")
 | 
			
		||||
MBED_RTX = join(RTOS, "rtx")
 | 
			
		||||
RTOS_ABSTRACTION = RTOS
 | 
			
		||||
 | 
			
		||||
RTOS_LIBRARIES = join(BUILD_DIR, "rtos")
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue