From a10faf3bfc150d6b6a484847d9a217ee7c7bb4ea Mon Sep 17 00:00:00 2001 From: fherrero <fherrero@iri.upc.edu> Date: Tue, 2 Jul 2019 11:57:02 +0200 Subject: [PATCH] Add submodule check/init and make target. Move and rename privileges.sh script to /scripts/set_example_privileges.sh. --- CMakeLists.txt | 2 +- privileges.sh | 2 -- scripts/set_example_privileges.sh | 3 +++ src/CMakeLists.txt | 25 +++++++++++++++++++++++++ src/examples/CMakeLists.txt | 2 +- 5 files changed, 30 insertions(+), 4 deletions(-) delete mode 100755 privileges.sh create mode 100755 scripts/set_example_privileges.sh diff --git a/CMakeLists.txt b/CMakeLists.txt index b0f7a95..0212a38 100755 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -96,4 +96,4 @@ ELSE(UNIX) COMMENT "packaging only implemented in unix" TARGET uninstall ) -ENDIF(UNIX) +ENDIF(UNIX) \ No newline at end of file diff --git a/privileges.sh b/privileges.sh deleted file mode 100755 index 0f97b5e..0000000 --- a/privileges.sh +++ /dev/null @@ -1,2 +0,0 @@ -sudo chown root:audio bin/battery_monitor_test -sudo chmod u+s bin/battery_monitor_test diff --git a/scripts/set_example_privileges.sh b/scripts/set_example_privileges.sh new file mode 100755 index 0000000..9c65944 --- /dev/null +++ b/scripts/set_example_privileges.sh @@ -0,0 +1,3 @@ +echo "battery_monitor_test: setting example privileges (needs sudo)" +sudo chown root:audio bin/battery_monitor_test +sudo chmod u+s bin/battery_monitor_test \ No newline at end of file diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index b25620b..b04f03f 100755 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -35,3 +35,28 @@ INSTALL(FILES ../scripts/unbind_ftdi_udev.sh DESTINATION share/iri/${PROJECT_NAME}/scripts PERMISSIONS OWNER_EXECUTE OWNER_WRITE OWNER_READ) ADD_SUBDIRECTORY(examples) + +find_package(Git QUIET) +if(GIT_FOUND AND EXISTS "${PROJECT_SOURCE_DIR}/.git") +# Update submodules as needed + option(GIT_SUBMODULE "Check submodules during build" ON) + if(GIT_SUBMODULE) + message(STATUS "Submodule update") + execute_process(COMMAND ${GIT_EXECUTABLE} submodule update --init --recursive + WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} + RESULT_VARIABLE GIT_SUBMOD_RESULT) + if(NOT GIT_SUBMOD_RESULT EQUAL "0") + message(FATAL_ERROR "git submodule update --init failed with ${GIT_SUBMOD_RESULT}, please checkout submodules") + endif() + endif() +endif() + +SET(firmware_dir avr8_smbus_battery_monitor) + +if(NOT EXISTS "${PROJECT_SOURCE_DIR}/${firmware_dir}/Makefile") + message(FATAL_ERROR "The submodules were not downloaded! GIT_SUBMODULE was turned off or failed. Please update submodules and try again.") +endif() + +add_custom_target(firmware ALL COMMAND make + WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/../${firmware_dir} +) diff --git a/src/examples/CMakeLists.txt b/src/examples/CMakeLists.txt index 79cad01..87b3022 100755 --- a/src/examples/CMakeLists.txt +++ b/src/examples/CMakeLists.txt @@ -4,6 +4,6 @@ ADD_EXECUTABLE(battery_monitor_test battery_monitor_test.cpp) TARGET_LINK_LIBRARIES(battery_monitor_test battery_monitor) add_custom_command(TARGET battery_monitor_test POST_BUILD - COMMAND sh ./privileges.sh + COMMAND sh ./scripts/set_example_privileges.sh WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}) -- GitLab