From 52bbe9af33eec82f750f8b607d41992ee538dee2 Mon Sep 17 00:00:00 2001 From: Ivan Kravets Date: Sat, 27 Feb 2016 01:27:57 +0200 Subject: [PATCH] Generate appropriate project for CLion IDE and CVS // Resolve #523 --- HISTORY.rst | 2 + examples/ide/clion/.gitignore | 3 +- examples/ide/clion/CMakeLists.txt | 109 +++++++------- platformio/__init__.py | 2 +- platformio/ide/tpls/clion/.gitignore.tpl | 2 + platformio/ide/tpls/clion/CMakeLists.txt.tpl | 133 ++++++++---------- .../ide/tpls/clion/CMakeListsLocal.txt.tpl | 14 ++ 7 files changed, 132 insertions(+), 133 deletions(-) create mode 100644 platformio/ide/tpls/clion/.gitignore.tpl create mode 100644 platformio/ide/tpls/clion/CMakeListsLocal.txt.tpl diff --git a/HISTORY.rst b/HISTORY.rst index 30f8ff14..1491f318 100644 --- a/HISTORY.rst +++ b/HISTORY.rst @@ -12,6 +12,8 @@ PlatformIO 2.0 (`issue #527 `_) * Improved handling of String-based ``CPPDEFINES`` passed to extra ``build_flags`` (`issue #526 `_) +* Generate appropriate project for CLion IDE and CVS + (`issue #523 `_) * Fixed issue with incorrect handling of user's build flags where the base flags were passed after user's flags to GCC compiler (`issue #528 `_) diff --git a/examples/ide/clion/.gitignore b/examples/ide/clion/.gitignore index e90612ed..47eb5a54 100644 --- a/examples/ide/clion/.gitignore +++ b/examples/ide/clion/.gitignore @@ -1 +1,2 @@ -.pioenvs \ No newline at end of file +.pioenvs +CMakeListsLocal.txt diff --git a/examples/ide/clion/CMakeLists.txt b/examples/ide/clion/CMakeLists.txt index 3c67b267..259ea540 100644 --- a/examples/ide/clion/CMakeLists.txt +++ b/examples/ide/clion/CMakeLists.txt @@ -1,58 +1,51 @@ -cmake_minimum_required(VERSION 3.2) -project(clion) - -set(PLATFORMIO_CMD platformio) - -include_directories("$ENV{HOME}/.platformio/packages/framework-arduinoavr/variants/standard") -include_directories("$ENV{HOME}/.platformio/packages/framework-arduinoavr/cores/arduino") -include_directories("$ENV{HOME}/.platformio/packages/toolchain-atmelavr/avr/include") -include_directories("$ENV{HOME}/.platformio/packages/toolchain-atmelavr/bfd/include") -include_directories("$ENV{HOME}/.platformio/packages/toolchain-atmelavr/lib/gcc/avr/4.8.1/include") -include_directories("$ENV{HOME}/.platformio/packages/toolchain-atmelavr/lib/gcc/avr/4.8.1/include-fixed") - -add_definitions(-DF_CPU=16000000L) -add_definitions(-DARDUINO_ARCH_AVR) -add_definitions(-DARDUINO_AVR_UNO) -add_definitions(-DARDUINO=10607) -add_definitions(-DPLATFORMIO=020701) -add_definitions(-D__AVR_ATmega328P__) - -add_custom_target( - PLATFORMIO_BUILD ALL - COMMAND ${PLATFORMIO_CMD} -f -c clion run - WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} -) - -add_custom_target( - PLATFORMIO_UPLOAD ALL - COMMAND ${PLATFORMIO_CMD} -f -c clion run --target upload - WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} -) - -add_custom_target( - PLATFORMIO_CLEAN ALL - COMMAND ${PLATFORMIO_CMD} -f -c clion run --target clean - WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} -) - -add_custom_target( - PLATFORMIO_PROGRAM ALL - COMMAND ${PLATFORMIO_CMD} -f -c clion run --target program - WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} -) - -add_custom_target( - PLATFORMIO_UPLOADFS ALL - COMMAND ${PLATFORMIO_CMD} -f -c clion run --target uploadfs - WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} -) - -add_custom_target( - PLATFORMIO_UPDATE_ALL ALL - COMMAND ${PLATFORMIO_CMD} -f -c clion update - WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} -) - -add_executable(clion - src/blink.cpp -) +cmake_minimum_required(VERSION 3.2) +project(clion) + +include(CMakeListsLocal.txt) + +add_definitions(-DF_CPU=16000000L) +add_definitions(-DARDUINO_ARCH_AVR) +add_definitions(-DARDUINO_AVR_UNO) +add_definitions(-DARDUINO=10607) +add_definitions(-DPLATFORMIO=020805) +add_definitions(-D__AVR_ATmega328P__) + +add_custom_target( + PLATFORMIO_BUILD ALL + COMMAND ${PLATFORMIO_CMD} -f -c clion run + WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} +) + +add_custom_target( + PLATFORMIO_UPLOAD ALL + COMMAND ${PLATFORMIO_CMD} -f -c clion run --target upload + WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} +) + +add_custom_target( + PLATFORMIO_CLEAN ALL + COMMAND ${PLATFORMIO_CMD} -f -c clion run --target clean + WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} +) + +add_custom_target( + PLATFORMIO_PROGRAM ALL + COMMAND ${PLATFORMIO_CMD} -f -c clion run --target program + WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} +) + +add_custom_target( + PLATFORMIO_UPLOADFS ALL + COMMAND ${PLATFORMIO_CMD} -f -c clion run --target uploadfs + WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} +) + +add_custom_target( + PLATFORMIO_UPDATE_ALL ALL + COMMAND ${PLATFORMIO_CMD} -f -c clion update + WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} +) + +add_executable(clion + src/blink.cpp +) diff --git a/platformio/__init__.py b/platformio/__init__.py index c3eb4882..404a33e9 100644 --- a/platformio/__init__.py +++ b/platformio/__init__.py @@ -14,7 +14,7 @@ import sys -VERSION = (2, 8, "5.dev0") +VERSION = (2, 8, "5.dev1") __version__ = ".".join([str(s) for s in VERSION]) __title__ = "platformio" diff --git a/platformio/ide/tpls/clion/.gitignore.tpl b/platformio/ide/tpls/clion/.gitignore.tpl new file mode 100644 index 00000000..47eb5a54 --- /dev/null +++ b/platformio/ide/tpls/clion/.gitignore.tpl @@ -0,0 +1,2 @@ +.pioenvs +CMakeListsLocal.txt diff --git a/platformio/ide/tpls/clion/CMakeLists.txt.tpl b/platformio/ide/tpls/clion/CMakeLists.txt.tpl index 4ad26cb6..eaa99d78 100644 --- a/platformio/ide/tpls/clion/CMakeLists.txt.tpl +++ b/platformio/ide/tpls/clion/CMakeLists.txt.tpl @@ -1,73 +1,60 @@ -cmake_minimum_required(VERSION 3.2) -project({{project_name}}) - -set(ENV{PATH} "{{env_path}}") -set(PLATFORMIO_CMD "{{platformio_path}}") - -% for include in includes: -% if include.startswith(user_home_dir): -% if "windows" in systype: -include_directories("$ENV{HOMEDRIVE}$ENV{HOMEPATH}{{include.replace(user_home_dir, '').replace("\\", "/")}}") -% else: -include_directories("$ENV{HOME}{{include.replace(user_home_dir, '').replace("\\", "/")}}") -% end -% else: -include_directories("{{include.replace("\\", "/")}}") -% end -% end - -% for define in defines: -add_definitions(-D{{!define}}) -% end - -add_custom_target( - PLATFORMIO_BUILD ALL - COMMAND ${PLATFORMIO_CMD} -f -c clion run - WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} -) - -add_custom_target( - PLATFORMIO_UPLOAD ALL - COMMAND ${PLATFORMIO_CMD} -f -c clion run --target upload - WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} -) - -add_custom_target( - PLATFORMIO_CLEAN ALL - COMMAND ${PLATFORMIO_CMD} -f -c clion run --target clean - WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} -) - -add_custom_target( - PLATFORMIO_PROGRAM ALL - COMMAND ${PLATFORMIO_CMD} -f -c clion run --target program - WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} -) - -add_custom_target( - PLATFORMIO_UPLOADFS ALL - COMMAND ${PLATFORMIO_CMD} -f -c clion run --target uploadfs - WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} -) - -add_custom_target( - PLATFORMIO_UPDATE_ALL ALL - COMMAND ${PLATFORMIO_CMD} -f -c clion update - WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} -) - -% if src_files and any([f.endswith((".c", ".cpp")) for f in src_files]): -add_executable({{project_name}} -% for f in src_files: -% if f.endswith((".c", ".cpp")): - {{f.replace("\\", "/")}} -% end -% end -) -% else: -# -# To enable code auto-completion, please specify path -# to main source file (*.c, *.cpp) and uncomment line below -# -# add_executable({{project_name}} src/main_change_me.cpp) -% end +cmake_minimum_required(VERSION 3.2) +project({{project_name}}) + +include(CMakeListsLocal.txt) + +% for define in defines: +add_definitions(-D{{!define}}) +% end + +add_custom_target( + PLATFORMIO_BUILD ALL + COMMAND ${PLATFORMIO_CMD} -f -c clion run + WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} +) + +add_custom_target( + PLATFORMIO_UPLOAD ALL + COMMAND ${PLATFORMIO_CMD} -f -c clion run --target upload + WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} +) + +add_custom_target( + PLATFORMIO_CLEAN ALL + COMMAND ${PLATFORMIO_CMD} -f -c clion run --target clean + WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} +) + +add_custom_target( + PLATFORMIO_PROGRAM ALL + COMMAND ${PLATFORMIO_CMD} -f -c clion run --target program + WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} +) + +add_custom_target( + PLATFORMIO_UPLOADFS ALL + COMMAND ${PLATFORMIO_CMD} -f -c clion run --target uploadfs + WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} +) + +add_custom_target( + PLATFORMIO_UPDATE_ALL ALL + COMMAND ${PLATFORMIO_CMD} -f -c clion update + WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} +) + +% if src_files and any([f.endswith((".c", ".cpp")) for f in src_files]): +add_executable({{project_name}} +% for f in src_files: +% if f.endswith((".c", ".cpp")): + {{f.replace("\\", "/")}} +% end +% end +) +% else: +# +# To enable code auto-completion, please specify path +# to main source file (*.c, *.cpp) and uncomment line below +# +# add_executable({{project_name}} src/main_change_me.cpp) +% end diff --git a/platformio/ide/tpls/clion/CMakeListsLocal.txt.tpl b/platformio/ide/tpls/clion/CMakeListsLocal.txt.tpl new file mode 100644 index 00000000..ef859843 --- /dev/null +++ b/platformio/ide/tpls/clion/CMakeListsLocal.txt.tpl @@ -0,0 +1,14 @@ +set(ENV{PATH} "{{env_path}}") +set(PLATFORMIO_CMD "{{platformio_path}}") + +% for include in includes: +% if include.startswith(user_home_dir): +% if "windows" in systype: +include_directories("$ENV{HOMEDRIVE}$ENV{HOMEPATH}{{include.replace(user_home_dir, '').replace("\\", "/")}}") +% else: +include_directories("$ENV{HOME}{{include.replace(user_home_dir, '').replace("\\", "/")}}") +% end +% else: +include_directories("{{include.replace("\\", "/")}}") +% end +% end \ No newline at end of file