diff --git a/CMakeLists.txt b/CMakeLists.txt new file mode 100644 index 0000000..b20eb36 --- /dev/null +++ b/CMakeLists.txt @@ -0,0 +1,9 @@ +cmake_minimum_required(VERSION 3.10) +project(WiringPiLib) + +# Include subdirectories +add_subdirectory(devLib) +add_subdirectory(gpio) +add_subdirectory(pins) +add_subdirectory(wiringPi) +add_subdirectory(wiringPiD) diff --git a/build b/build index d898ec7..09ae34d 100755 --- a/build +++ b/build @@ -100,7 +100,7 @@ if [ x$1 = "xdebian" ]; then cd $here/gpio make install-deb INCLUDE='-I../wiringPi -I../devLib' LDFLAGS=-L../debian-template/wiringPi/usr/lib DEB_DESTDIR=${deb_destdir} cd $here/debian-template - fakeroot dpkg-deb --build wiringPi + dpkg-deb --build wiringPi dpkg-name -o wiringPi.deb exit fi @@ -119,30 +119,28 @@ fi echo echo "WiringPi Library" cd wiringPi - $sudo make uninstall if [ x$1 = "xstatic" ]; then make -j5 static check_make_ok - $sudo make install-static + oe_runmake-static else make -j5 check_make_ok - $sudo make install + oe_runmake fi check_make_ok echo echo "WiringPi Devices Library" cd ../devLib - $sudo make uninstall if [ x$1 = "xstatic" ]; then make -j5 static check_make_ok - $sudo make install-static + oe_runmake-static else make -j5 check_make_ok - $sudo make install + oe_runmake fi check_make_ok @@ -151,15 +149,14 @@ fi cd ../gpio make -j5 check_make_ok - $sudo make install - check_make_ok + oe_runmake # echo # echo "wiringPi Daemon" # cd ../wiringPiD # make -j5 # check_make_ok -# $sudo make install +# oe_runmake # check_make_ok # echo diff --git a/devLib/CMakeLists.txt b/devLib/CMakeLists.txt new file mode 100644 index 0000000..21b8c29 --- /dev/null +++ b/devLib/CMakeLists.txt @@ -0,0 +1,36 @@ +# CMakeLists.txt for devLib + +cmake_minimum_required(VERSION 3.10) +project(devLib) + +# Source files +set(SRC + ds1302.c maxdetect.c piNes.c + gertboard.c piFace.c + lcd128x64.c lcd.c + scrollPhat.c + piGlow.c +) + +# Headers +set(HEADERS + ds1302.h maxdetect.h piNes.h + gertboard.h piFace.h + lcd128x64.h lcd.h + scrollPhatFont.h scrollPhat.h + piGlow.h +) + +# Compiler flags +set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wall -Wformat=2 -Winline -pipe -fPIC") + +# Add the library target +add_library(wiringPiDev SHARED ${SRC}) + +# Set the library version +set_target_properties(wiringPiDev PROPERTIES VERSION ${VERSION} SOVERSION ${WIRINGPI_SONAME_SUFFIX}) + +# Install headers +install(FILES ${HEADERS} DESTINATION include) +# Install the library +install(TARGETS wiringPiDev LIBRARY DESTINATION lib) diff --git a/gpio/CMakeLists.txt b/gpio/CMakeLists.txt new file mode 100644 index 0000000..bc43639 --- /dev/null +++ b/gpio/CMakeLists.txt @@ -0,0 +1,29 @@ +# CMakeLists.txt for gpio + +cmake_minimum_required(VERSION 3.10) +project(gpio) + +# Source files +set(SRC + gpio.c + readall.c +) + +# Compiler flags +set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wall -Wextra") + +# Add the executable target +add_executable(gpio ${SRC}) + +# Find the required libraries +find_library(WIRINGPI_LIB wiringPi) +find_library(WIRINGPI_DEV_LIB wiringPiDev) + +# Link the required libraries +target_link_libraries(gpio ${WIRINGPI_LIB} ${WIRINGPI_DEV_LIB} pthread rt m crypt) + +# Install the executable +install(TARGETS gpio DESTINATION bin) + +# Install man page +install(FILES gpio.1 DESTINATION share/man/man1) diff --git a/pins/CMakeLists.txt b/pins/CMakeLists.txt new file mode 100644 index 0000000..a7e29a9 --- /dev/null +++ b/pins/CMakeLists.txt @@ -0,0 +1,28 @@ +# CMakeLists.txt for pins + +cmake_minimum_required(VERSION 3.10) +project(pins LANGUAGES NONE) + +# Source file +set(SRC pins.tex) + +# Add custom target to generate PDF +add_custom_target(pins_pdf + COMMAND latex ${SRC} + COMMAND dvipdf ${SRC:.tex=.dvi} + COMMENT "Generating PDF" + WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} +) + +# Add clean target +add_custom_target(clean_pins + COMMAND rm -f *.dvi *.aux *.log *.ps *.toc *.bak *~ + COMMENT "Cleaning pins" + WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} +) + +# Add dependencies +add_dependencies(pins_pdf clean_pins) + +# Install PDF +install(FILES ${CMAKE_CURRENT_SOURCE_DIR}/pins.pdf DESTINATION share/pins) diff --git a/wiringPi/CMakeLists.txt b/wiringPi/CMakeLists.txt new file mode 100644 index 0000000..3326ada --- /dev/null +++ b/wiringPi/CMakeLists.txt @@ -0,0 +1,66 @@ +# CMakeLists.txt for wiringPi + +cmake_minimum_required(VERSION 3.10) +project(WiringPi) + +# Source files +set(SRC + wiringPi.c + wiringSerial.c wiringShift.c + piHiPri.c piThread.c + wiringPiSPI.c wiringPiI2C.c + softPwm.c softTone.c + mcp23008.c mcp23016.c mcp23017.c + mcp23s08.c mcp23s17.c + sr595.c + pcf8574.c pcf8591.c + mcp3002.c mcp3004.c mcp4802.c mcp3422.c + max31855.c max5322.c ads1115.c + sn3218.c + bmp180.c htu21d.c ds18b20.c rht03.c + drcSerial.c drcNet.c + pseudoPins.c + wpiExtensions.c + wiringPiLegacy.c +) + +# Headers +set(HEADERS + wiringPi.h + wiringSerial.h wiringShift.h + wiringPiSPI.h wiringPiI2C.h + softPwm.h softTone.h + mcp23008.h mcp23016.h mcp23017.h + mcp23s08.h mcp23s17.h + sr595.h + pcf8574.h pcf8591.h + mcp3002.h mcp3004.h mcp4802.h mcp3422.h + max31855.h max5322.h ads1115.h + sn3218.h + bmp180.h htu21d.h ds18b20.h rht03.h + drcSerial.h drcNet.h + pseudoPins.h + wpiExtensions.h +) +# Compiler flags +set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wall -Wextra -Wformat=2 -Winline -pipe -fPIC -Wformat-security") +set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} -Wl,-soname,libwiringPi.so${WIRINGPI_SONAME_SUFFIX}") + +# Read version from version.h +file(READ "${CMAKE_CURRENT_SOURCE_DIR}/../version.h" VERSION) +string(REGEX REPLACE ".*VERSION \"([0-9]+.[0-9]+)\".*" "\\1" VERSION "${VERSION}") + +# Add the library target +add_library(wiringPi SHARED ${SRC}) + +# Set the library version +set(WIRINGPI_SONAME_SUFFIX "1") +set_target_properties(wiringPi PROPERTIES VERSION ${VERSION} SOVERSION ${WIRINGPI_SONAME_SUFFIX}) +target_include_directories(wiringPi PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}) + +# Add -lm to link with the math library +target_link_libraries(wiringPi PUBLIC m crypt) +# Install headers +install(FILES ${HEADERS} DESTINATION include) +# Install the library +install(TARGETS wiringPi LIBRARY DESTINATION lib) diff --git a/wiringPiD/CMakeLists.txt b/wiringPiD/CMakeLists.txt new file mode 100644 index 0000000..26f44c2 --- /dev/null +++ b/wiringPiD/CMakeLists.txt @@ -0,0 +1,37 @@ +# CMakeLists.txt for wiringPiD + +cmake_minimum_required(VERSION 3.10) +project(wiringPiD) + +# Source files +set(SRC wiringpid.c network.c runRemote.c daemonise.c) + +# Add the executable +add_executable(wiringpid ${SRC}) + +# Set C compiler flags +set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -O2 -Wall -Wextra") + +# Include directories +include_directories(${CMAKE_CURRENT_SOURCE_DIR}) + +# Link libraries +find_library(WIRINGPI_LIB wiringPi) +find_library(WIRINGPIDEV_LIB wiringPiDev) +find_library(PTHREAD_LIB pthread) +find_library(RT_LIB rt) +find_library(M_LIB m) +find_library(CRYPT_LIB crypt) +target_link_libraries(wiringpid + ${WIRINGPI_LIB} + ${WIRINGPIDEV_LIB} + ${PTHREAD_LIB} + ${RT_LIB} + ${M_LIB} + ${CRYPT_LIB} +) + +# Install the executable +install(TARGETS wiringpid + RUNTIME DESTINATION bin +)