diff --git a/README.md b/README.md index 5d53ae6..a53b6c9 100644 --- a/README.md +++ b/README.md @@ -1,18 +1,33 @@ -# Linux x86_64: development platform for [PlatformIO](http://platformio.org) +# Linux x86_64: development platform for [PlatformIO](https://platformio.org) Linux x86_64 (64-bit) is a Unix-like and mostly POSIX-compliant computer operating system (OS) assembled under the model of free and open-source software development and distribution. Using host OS (Mac OS X or Linux 64-bit) you can build native application for Linux x86_64 platform. -* [Home](http://platformio.org/platforms/linux_x86_64) (home page in PlatformIO Platform Registry) -* [Documentation](http://docs.platformio.org/page/platforms/linux_x86_64.html) (advanced usage, packages, boards, frameworks, etc.) +* [Home](https://registry.platformio.org/platforms/platformio/linux_x86_64) (home page in the PlatformIO Registry) +* [Documentation](https://docs.platformio.org/page/platforms/linux_x86_64.html) (advanced usage, packages, boards, frameworks, etc.) # Usage -1. [Install PlatformIO Core](http://docs.platformio.org/page/core.html) -2. Install Linux x86_64 development platform: -```bash -# install the latest stable version -> platformio platform install linux_x86_64 +1. [Install PlatformIO](https://platformio.org) +2. Create PlatformIO project and configure a platform option in [platformio.ini](https://docs.platformio.org/page/projectconf.html) file: -# install development version -> platformio platform install https://github.com/platformio/platform-linux_x86_64.git +## Stable version + +```ini +[env:stable] +platform = linux_x86_64 +board = ... +... +``` + +## Development version + +```ini +[env:development] +platform = https://github.com/platformio/platform-linux_x86_64.git +board = ... +... ``` + +# Configuration + +Please navigate to [documentation](https://docs.platformio.org/page/platforms/linux_x86_64.html). diff --git a/examples/hello-world/.gitignore b/examples/hello-world/.gitignore index 5402c18..6c69f4c 100644 --- a/examples/hello-world/.gitignore +++ b/examples/hello-world/.gitignore @@ -1,3 +1,2 @@ .pioenvs -.clang_complete -.gcc-flags.json +.piolibdeps diff --git a/examples/hello-world/.travis.yml b/examples/hello-world/.travis.yml deleted file mode 100644 index 593d7ef..0000000 --- a/examples/hello-world/.travis.yml +++ /dev/null @@ -1,65 +0,0 @@ -# Continuous Integration (CI) is the practice, in software -# engineering, of merging all developer working copies with a shared mainline -# several times a day < http://docs.platformio.org/page/ci/index.html > -# -# Documentation: -# -# * Travis CI Embedded Builds with PlatformIO -# < https://docs.travis-ci.com/user/integration/platformio/ > -# -# * PlatformIO integration with Travis CI -# < http://docs.platformio.org/page/ci/travis.html > -# -# * User Guide for `platformio ci` command -# < http://docs.platformio.org/page/userguide/cmd_ci.html > -# -# -# Please choose one of the following templates (proposed below) and uncomment -# it (remove "# " before each line) or use own configuration according to the -# Travis CI documentation (see above). -# - - -# -# Template #1: General project. Test it using existing `platformio.ini`. -# - -# language: python -# python: -# - "2.7" -# -# sudo: false -# cache: -# directories: -# - "~/.platformio" -# -# install: -# - pip install -U platformio -# -# script: -# - platformio run - - -# -# Template #2: The project is intended to by used as a library with examples -# - -# language: python -# python: -# - "2.7" -# -# sudo: false -# cache: -# directories: -# - "~/.platformio" -# -# env: -# - PLATFORMIO_CI_SRC=path/to/test/file.c -# - PLATFORMIO_CI_SRC=examples/file.ino -# - PLATFORMIO_CI_SRC=path/to/test/directory -# -# install: -# - pip install -U platformio -# -# script: -# - platformio ci --lib="." --board=ID_1 --board=ID_2 --board=ID_N diff --git a/examples/hello-world/README.md b/examples/hello-world/README.md new file mode 100644 index 0000000..b36bff5 --- /dev/null +++ b/examples/hello-world/README.md @@ -0,0 +1,21 @@ +How to build PlatformIO based project +===================================== + +1. [Install PlatformIO Core](https://docs.platformio.org/page/core.html) +2. Download [development platform with examples](https://github.com/platformio/platform-linux_x86_64/archive/develop.zip) +3. Extract ZIP archive +4. Run these commands: + +```shell +# Change directory to example +$ cd platform-linux_x86_64/examples/hello-world + +# Build project +$ pio run + +# Run program +> .pioenvs/native/program + +# Clean build files +$ pio run --target clean +``` diff --git a/examples/hello-world/README.rst b/examples/hello-world/README.rst deleted file mode 100644 index 9feb21d..0000000 --- a/examples/hello-world/README.rst +++ /dev/null @@ -1,32 +0,0 @@ -.. Copyright 2014-present PlatformIO - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - http://www.apache.org/licenses/LICENSE-2.0 - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - 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. - -How to build PlatformIO based project -===================================== - -1. `Install PlatformIO Core `_ -2. Download `development platform with examples `_ -3. Extract ZIP archive -4. Run these commands: - -.. code-block:: bash - - # Change directory to example - > cd platform-linux_x86_64/examples/hello-world - - # Build project - > platformio run - - # Run program - > .pioenvs/native/program - - # Clean build files - > platformio run --target clean diff --git a/examples/hello-world/include/README b/examples/hello-world/include/README new file mode 100644 index 0000000..194dcd4 --- /dev/null +++ b/examples/hello-world/include/README @@ -0,0 +1,39 @@ + +This directory is intended for project header files. + +A header file is a file containing C declarations and macro definitions +to be shared between several project source files. You request the use of a +header file in your project source file (C, C++, etc) located in `src` folder +by including it, with the C preprocessing directive `#include'. + +```src/main.c + +#include "header.h" + +int main (void) +{ + ... +} +``` + +Including a header file produces the same results as copying the header file +into each source file that needs it. Such copying would be time-consuming +and error-prone. With a header file, the related declarations appear +in only one place. If they need to be changed, they can be changed in one +place, and programs that include the header file will automatically use the +new version when next recompiled. The header file eliminates the labor of +finding and changing all the copies as well as the risk that a failure to +find one copy will result in inconsistencies within a program. + +In C, the usual convention is to give header files names that end with `.h'. +It is most portable to use only letters, digits, dashes, and underscores in +header file names, and at most one dot. + +Read more about using header files in official GCC documentation: + +* Include Syntax +* Include Operation +* Once-Only Headers +* Computed Includes + +https://gcc.gnu.org/onlinedocs/cpp/Header-Files.html diff --git a/examples/hello-world/lib/README b/examples/hello-world/lib/README new file mode 100644 index 0000000..6debab1 --- /dev/null +++ b/examples/hello-world/lib/README @@ -0,0 +1,46 @@ + +This directory is intended for project specific (private) libraries. +PlatformIO will compile them to static libraries and link into executable file. + +The source code of each library should be placed in a an own separate directory +("lib/your_library_name/[here are source files]"). + +For example, see a structure of the following two libraries `Foo` and `Bar`: + +|--lib +| | +| |--Bar +| | |--docs +| | |--examples +| | |--src +| | |- Bar.c +| | |- Bar.h +| | |- library.json (optional, custom build options, etc) https://docs.platformio.org/page/librarymanager/config.html +| | +| |--Foo +| | |- Foo.c +| | |- Foo.h +| | +| |- README --> THIS FILE +| +|- platformio.ini +|--src + |- main.c + +and a contents of `src/main.c`: +``` +#include +#include + +int main (void) +{ + ... +} + +``` + +PlatformIO Library Dependency Finder will find automatically dependent +libraries scanning project source files. + +More information about PlatformIO Library Dependency Finder +- https://docs.platformio.org/page/librarymanager/ldf.html diff --git a/examples/hello-world/lib/readme.txt b/examples/hello-world/lib/readme.txt deleted file mode 100644 index 4b6209e..0000000 --- a/examples/hello-world/lib/readme.txt +++ /dev/null @@ -1,38 +0,0 @@ - -This directory is intended for the project specific (private) libraries. -PlatformIO will compile them to static libraries and link to executable file. - -The source code of each library should be placed in separate directory, like -"lib/private_lib/[here are source files]". - -For example, see how can be organized `Foo` and `Bar` libraries: - -|--lib -| |--Bar -| | |--docs -| | |--examples -| | |--src -| | |- Bar.c -| | |- Bar.h -| |--Foo -| | |- Foo.c -| | |- Foo.h -| |- readme.txt --> THIS FILE -|- platformio.ini -|--src - |- main.c - -Then in `src/main.c` you should use: - -#include -#include - -// rest H/C/CPP code - -PlatformIO will find your libraries automatically, configure preprocessor's -include paths and build them. - -See additional options for PlatformIO Library Dependency Finder `lib_*`: - -http://docs.platformio.org/page/projectconf.html#lib-install - diff --git a/examples/hello-world/platformio.ini b/examples/hello-world/platformio.ini index 9edef7e..edc3195 100644 --- a/examples/hello-world/platformio.ini +++ b/examples/hello-world/platformio.ini @@ -5,7 +5,7 @@ ; Library options: dependencies, extra library storages ; ; Please visit documentation for the other options and examples -; http://docs.platformio.org/page/projectconf.html +; https://docs.platformio.org/page/projectconf.html [env:linux_x86_64] platform = linux_x86_64 diff --git a/examples/hello-world/test/README b/examples/hello-world/test/README new file mode 100644 index 0000000..df5066e --- /dev/null +++ b/examples/hello-world/test/README @@ -0,0 +1,11 @@ + +This directory is intended for PIO Unit Testing and project tests. + +Unit Testing is a software testing method by which individual units of +source code, sets of one or more MCU program modules together with associated +control data, usage procedures, and operating procedures, are tested to +determine whether they are fit for use. Unit testing finds problems early +in the development cycle. + +More information about PIO Unit Testing: +- https://docs.platformio.org/page/plus/unit-testing.html diff --git a/platform.json b/platform.json index b06fae3..104449b 100644 --- a/platform.json +++ b/platform.json @@ -2,24 +2,25 @@ "name": "linux_x86_64", "title": "Linux x86_64", "description": "Linux x86_64 (64-bit) is a Unix-like and mostly POSIX-compliant computer operating system (OS) assembled under the model of free and open-source software development and distribution. Using host OS (Mac OS X or Linux 64-bit) you can build native application for Linux x86_64 platform.", - "url": "http://platformio.org/platforms/linux_x86_64", - "homepage": "http://platformio.org/platforms/linux_x86_64", + "homepage": "https://registry.platformio.org/platforms/platformio/linux_x86_64", "license": "Apache-2.0", + "keywords": [ + "dev-platform", + "Linux", + "x86_64" + ], "engines": { - "platformio": "^3.0.0" + "platformio": "^6" }, "repository": { "type": "git", "url": "https://github.com/platformio/platform-linux_x86_64.git" }, - "version": "1.1.2", - "packageRepositories": [ - "https://dl.bintray.com/platformio/dl-packages/manifest.json", - "http://dl.platformio.org/packages/manifest.json" - ], + "version": "1.2.0", "packages": { "toolchain-gcclinux64": { "type": "toolchain", + "owner": "platformio", "version": "~1.40801.0" } } diff --git a/platform.py b/platform.py index 3f077ca..74dcf45 100644 --- a/platform.py +++ b/platform.py @@ -12,7 +12,7 @@ # See the License for the specific language governing permissions and # limitations under the License. -from platformio.managers.platform import PlatformBase +from platformio.public import PlatformBase from platformio.util import get_systype