Skip to content
This repository was archived by the owner on Apr 17, 2023. It is now read-only.

Commit 0831a0d

Browse files
committed
Modified executable API to treat source files as unparsed arguments.
It means that there's no longer a variable that accepts sources, however, it's invisible to the user. Fixed a few bugs in the '3rd-party-library' example, found out after enabling the new API. Signed-off-by: Timor Gruber <timor.gruber@gmail.com>
1 parent 3de14e1 commit 0831a0d

File tree

6 files changed

+26
-18
lines changed

6 files changed

+26
-18
lines changed

cmake/Platform/Targets/ExecutableTarget.cmake

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3,12 +3,14 @@
33
# using the given board ID and source files.
44
# _target_name - Name of the target (Executable) to create.
55
# _board_id - ID of the board to bind to the target (Each target can have a single board).
6-
# _src_files - List of source file (Could also be headers for code-inspection in some IDEs)
7-
# to create the executable from, just like it's done with a standard executable.
6+
# [Sources] - List of source files (Could also be headers for code-inspection in some IDEs)
7+
# to create the executable from, similar to CMake's built-in add_executable.
88
#=============================================================================#
9-
function(add_arduino_executable _target_name _board_id _src_files)
9+
function(add_arduino_executable _target_name _board_id)
1010

11-
add_executable(${_target_name} "${_src_files}")
11+
list(APPEND sources "${ARGN}") # Treat all remaining arguments as sources
12+
13+
add_executable(${_target_name} "${sources}")
1214
# Always add board's core lib
1315
add_arduino_core_lib(${_target_name} "${_board_id}")
1416
# Add compiler and linker flags

examples/3rd-party-library/CMakeLists.txt

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,8 @@ cmake_minimum_required(VERSION 3.8.2)
33
project(3rd_Party_Arduino_Library)
44
get_board_id(board_id nano atmega328)
55

6-
add_arduino_executable(3rd_Party_Arduino_Library ${board_id} testNeoPixel.cpp testGFX.cpp)
6+
add_arduino_executable(3rd_Party_Arduino_Library ${board_id} NeoPixelTest.cpp GFXTest.cpp)
7+
target_include_directories(3rd_Party_Arduino_Library PRIVATE include)
78

89
add_arduino_library(Adafruit_NeoPixel ${board_id} libraries/Adafruit_NeoPixel/Adafruit_NeoPixel.cpp)
910
target_include_directories(Adafruit_NeoPixel PUBLIC libraries/Adafruit_NeoPixel)
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
#include "include/GFXTest.h"
2+
3+
static Adafruit_GFX_Button gfxButton;
4+
5+
void doSomething()
6+
{
7+
gfxButton.isPressed();
8+
}

examples/3rd-party-library/testNeoPixel.cpp renamed to examples/3rd-party-library/NeoPixelTest.cpp

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,12 @@
11
#include <Adafruit_NeoPixel.h>
2+
#include "GFXTest.h"
23

34
Adafruit_NeoPixel neoPixel;
45

56
void setup()
67
{
78
neoPixel.clear();
9+
doSomething();
810
}
911

1012
void loop()
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
#ifndef EXAMPLES_GFXTEST_HPP
2+
#define EXAMPLES_GFXTEST_HPP
3+
4+
#include <Adafruit_GFX.h>
5+
6+
void doSomething();
7+
8+
#endif //EXAMPLES_GFXTEST_HPP

examples/3rd-party-library/testGFX.cpp

Lines changed: 0 additions & 13 deletions
This file was deleted.

0 commit comments

Comments
 (0)