19750e409Sopenharmony_ci# rumor has it that this yaml file works for the standard edition of the
29750e409Sopenharmony_ci# hitech PICC18 compiler, but not the pro version.
39750e409Sopenharmony_ci#
49750e409Sopenharmony_cicompiler:
59750e409Sopenharmony_ci  path: cd build && picc18
69750e409Sopenharmony_ci  source_path: '..\src\'
79750e409Sopenharmony_ci  unit_tests_path: &unit_tests_path 'tests\'
89750e409Sopenharmony_ci  build_path: &build_path 'build\'
99750e409Sopenharmony_ci  options:
109750e409Sopenharmony_ci    - --chip=18F87J10
119750e409Sopenharmony_ci    - --ide=hitide
129750e409Sopenharmony_ci    - --q #quiet please
139750e409Sopenharmony_ci    - --asmlist
149750e409Sopenharmony_ci    - --codeoffset=0
159750e409Sopenharmony_ci    - --emi=wordwrite # External memory interface protocol
169750e409Sopenharmony_ci    - --warn=0 # allow all normal warning messages
179750e409Sopenharmony_ci    - --errors=10 # Number of errors before aborting compile
189750e409Sopenharmony_ci    - --char=unsigned
199750e409Sopenharmony_ci    - -Bl # Large memory model
209750e409Sopenharmony_ci    - -G # generate symbol file
219750e409Sopenharmony_ci    - --cp=16 # 16-bit pointers
229750e409Sopenharmony_ci    - --double=24
239750e409Sopenharmony_ci    - -N255 # 255-char symbol names
249750e409Sopenharmony_ci    - --opt=none # Do not use any compiler optimziations
259750e409Sopenharmony_ci    - -c # compile only
269750e409Sopenharmony_ci    - -M
279750e409Sopenharmony_ci  includes:
289750e409Sopenharmony_ci    prefix: '-I'
299750e409Sopenharmony_ci    items:
309750e409Sopenharmony_ci      - 'c:/Projects/NexGen/Prototypes/CMockTest/src/'
319750e409Sopenharmony_ci      - 'c:/Projects/NexGen/Prototypes/CMockTest/mocks/'
329750e409Sopenharmony_ci      - 'c:/CMock/src/'
339750e409Sopenharmony_ci      - 'c:/CMock/examples/src/'
349750e409Sopenharmony_ci      - 'c:/CMock/vendor/unity/src/'
359750e409Sopenharmony_ci      - 'c:/CMock/vendor/unity/examples/helper/'
369750e409Sopenharmony_ci      - *unit_tests_path
379750e409Sopenharmony_ci  defines:
389750e409Sopenharmony_ci    prefix: '-D'
399750e409Sopenharmony_ci    items:
409750e409Sopenharmony_ci      - UNITY_INT_WIDTH=16
419750e409Sopenharmony_ci      - UNITY_POINTER_WIDTH=16
429750e409Sopenharmony_ci      - CMOCK_MEM_STATIC
439750e409Sopenharmony_ci      - CMOCK_MEM_SIZE=3000
449750e409Sopenharmony_ci      - UNITY_SUPPORT_TEST_CASES
459750e409Sopenharmony_ci      - _PICC18
469750e409Sopenharmony_ci  object_files:
479750e409Sopenharmony_ci    # prefix: '-O' # Hi-Tech doesn't want a prefix. They key off of filename .extensions, instead
489750e409Sopenharmony_ci    extension: '.obj'
499750e409Sopenharmony_ci    destination: *build_path
509750e409Sopenharmony_ci
519750e409Sopenharmony_cilinker:
529750e409Sopenharmony_ci  path: cd build && picc18
539750e409Sopenharmony_ci  options:
549750e409Sopenharmony_ci    - --chip=18F87J10
559750e409Sopenharmony_ci    - --ide=hitide
569750e409Sopenharmony_ci    - --cp=24 # 24-bit pointers. Is this needed for linker??
579750e409Sopenharmony_ci    - --double=24 # Is this needed for linker??
589750e409Sopenharmony_ci    - -Lw # Scan the pic87*w.lib in the lib/ of the compiler installation directory
599750e409Sopenharmony_ci    - --summary=mem,file # info listing
609750e409Sopenharmony_ci    - --summary=+psect
619750e409Sopenharmony_ci    - --summary=+hex
629750e409Sopenharmony_ci    - --output=+intel
639750e409Sopenharmony_ci    - --output=+mcof
649750e409Sopenharmony_ci    - --runtime=+init # Directs startup code to copy idata, ibigdata and ifardata psects from ROM to RAM.
659750e409Sopenharmony_ci    - --runtime=+clear # Directs startup code to clear bss, bigbss, rbss and farbss psects
669750e409Sopenharmony_ci    - --runtime=+clib # link in the c-runtime
679750e409Sopenharmony_ci    - --runtime=+keep # Keep the generated startup src after its obj is linked
689750e409Sopenharmony_ci    - -G # Generate src-level symbol file
699750e409Sopenharmony_ci    - -MIWasTheLastToBuild.map
709750e409Sopenharmony_ci    - --warn=0 # allow all normal warning messages
719750e409Sopenharmony_ci    - -Bl # Large memory model (probably not needed for linking)
729750e409Sopenharmony_ci  includes:
739750e409Sopenharmony_ci    prefix: '-I'
749750e409Sopenharmony_ci    object_files:
759750e409Sopenharmony_ci      path: *build_path
769750e409Sopenharmony_ci      extension: '.obj'
779750e409Sopenharmony_ci    bin_files:
789750e409Sopenharmony_ci      prefix: '-O'
799750e409Sopenharmony_ci      extension: '.hex'
809750e409Sopenharmony_ci      destination: *build_path
819750e409Sopenharmony_ci
829750e409Sopenharmony_cisimulator:
839750e409Sopenharmony_ci  path:
849750e409Sopenharmony_ci  pre_support:
859750e409Sopenharmony_ci    - 'java -client -jar ' # note space
869750e409Sopenharmony_ci    - ['C:\Program Files\HI-TECH Software\HI-TIDE\3.15\lib\', 'simpic18.jar']
879750e409Sopenharmony_ci    - 18F87J10
889750e409Sopenharmony_ci  post_support:
899750e409Sopenharmony_ci
909750e409Sopenharmony_ci:cmock:
919750e409Sopenharmony_ci  :plugins: []
929750e409Sopenharmony_ci  :includes:
939750e409Sopenharmony_ci    - Types.h
949750e409Sopenharmony_ci  :suite_teardown: |
959750e409Sopenharmony_ci    if (num_failures)
969750e409Sopenharmony_ci      _FAILED_TEST();
979750e409Sopenharmony_ci    else
989750e409Sopenharmony_ci      _PASSED_TESTS();
999750e409Sopenharmony_ci    return 0;
1009750e409Sopenharmony_ci
1019750e409Sopenharmony_cicolour: true
102