diff --git a/CMakeLists.txt b/CMakeLists.txt index bf55bed..1fee840 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,11 +1,37 @@ +set(CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/cmake + ${CMAKE_MODULE_PATH}) +set(CMAKE_C_FLAGS "-std=gnu11") + +add_definitions(-DBUILD_ENABLE_DEBUG) +add_definitions(-DBUILD_BINDIR="$(bindir)") + +#set(CMAKE_CPP_FLAGS "-include $(top_builddir)/config.h \ + #-I $(top_srcdir)/src \ + #-I $(top_srcdir)/src/shared \ +FILE(GLOB _ALL_FILES $(top_srcdir)/src $(top_srcdir)/src/shared) +FOREACH(_FILE ${_ALL_FILES}) + IF(IS_DIRECTORY ${_FILE}) + INCLUDE_DIRECTORIES(${_FILE}) + ENDIF() +ENDFOREACH() + + project(Miraclecast) -set(CMAKE_C_FLAGS "-std=c99") cmake_minimum_required(VERSION 3.0) add_subdirectory(src) add_subdirectory(res) add_subdirectory(test) +OPTION( WITH_FOO "Enable FOO support" ON ) +OPTION( WITH_BAR "Enable BAR component" OFF ) +SET( BAZ 18 ) +SET(PACKAGE_NAME miraclecast) +SET(PACKAGE_VERSION 1) +SET(PACKAGE_STRING "${PACKAGE_NAME} ${PACKAGE_VERSION}") +CONFIGURE_FILE( ${CMAKE_SOURCE_DIR}/config.h.cmake ${CMAKE_CURRENT_BINARY_DIR}/config.h ) +INCLUDE_DIRECTORIES(${CMAKE_CURRENT_BINARY_DIR}) + ########### install files ############### diff --git a/cmake/FindReadline.cmake b/cmake/FindReadline.cmake new file mode 100644 index 0000000..1d4cc55 --- /dev/null +++ b/cmake/FindReadline.cmake @@ -0,0 +1,29 @@ +# from http://websvn.kde.org/trunk/KDE/kdeedu/cmake/modules/FindReadline.cmake +# http://websvn.kde.org/trunk/KDE/kdeedu/cmake/modules/COPYING-CMAKE-SCRIPTS +# --> BSD licensed +# +# GNU Readline library finder +if(READLINE_INCLUDE_DIR AND READLINE_LIBRARY AND NCURSES_LIBRARY) + set(READLINE_FOUND TRUE) +else(READLINE_INCLUDE_DIR AND READLINE_LIBRARY AND NCURSES_LIBRARY) + FIND_PATH(READLINE_INCLUDE_DIR readline/readline.h + /usr/include/readline + ) + +# 2008-04-22 The next clause used to read like this: +# +# FIND_LIBRARY(READLINE_LIBRARY NAMES readline) +# FIND_LIBRARY(NCURSES_LIBRARY NAMES ncurses ) +# include(FindPackageHandleStandardArgs) +# FIND_PACKAGE_HANDLE_STANDARD_ARGS(Readline DEFAULT_MSG NCURSES_LIBRARY READLINE_INCLUDE_DIR READLINE_LIBRARY ) +# +# I was advised to modify it such that it will find an ncurses library if +# required, but not if one was explicitly given, that is, it allows the +# default to be overridden. PH + + FIND_LIBRARY(READLINE_LIBRARY NAMES readline) + include(FindPackageHandleStandardArgs) + FIND_PACKAGE_HANDLE_STANDARD_ARGS(Readline DEFAULT_MSG READLINE_INCLUDE_DIR READLINE_LIBRARY ) + + MARK_AS_ADVANCED(READLINE_INCLUDE_DIR READLINE_LIBRARY) +endif(READLINE_INCLUDE_DIR AND READLINE_LIBRARY AND NCURSES_LIBRARY) diff --git a/config.h.cmake b/config.h.cmake new file mode 100644 index 0000000..83b9110 --- /dev/null +++ b/config.h.cmake @@ -0,0 +1,10 @@ +#ifndef CONFIG_H +#define CONFIG_H + +#cmakedefine WITH_FOO +#cmakedefine WITH_BAR + +#cmakedefine BAZ @BAZ@ +#cmakedefine PACKAGE_STRING "@PACKAGE_STRING@" + +#endif // CONFIG_H diff --git a/res/normal-wifi.sh b/res/normal-wifi.sh index 0fd2df2..0bd8a68 100755 --- a/res/normal-wifi.sh +++ b/res/normal-wifi.sh @@ -1,4 +1,5 @@ ./kill-wpa.sh +CONFIG_FILE=${1:-/run/network/wpa_supplicant_wlp3s0.conf} echo starting wpa_supplicant for normal connection -sudo wpa_supplicant -B -P /run/wpa_supplicant_wlp3s0.pid -i wlp3s0 -D nl80211,wext -c/run/network/wpa_supplicant_wlp3s0.conf +sudo wpa_supplicant -B -P /run/wpa_supplicant_wlp3s0.pid -i wlp3s0 -D nl80211,wext -c$CONFIG_FILE diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 4896a51..47f128a 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -1,3 +1,6 @@ +set(CMAKE_C_FLAGS "-std=gnu11") +add_definitions(-D__USE_GNU) +add_definitions(-D_GNU_SOURCE) add_subdirectory(shared) add_subdirectory(wifi) @@ -8,21 +11,10 @@ add_subdirectory(ctl) ########### next target ############### set(miracled_SRCS miracled.h miracled.c) -include_directories(shared) -link_directories(shared) add_executable(miracled ${miracled_SRCS}) target_link_libraries(miracled miracle-shared) -find_package(PkgConfig) -pkg_check_modules (GLIB2 REQUIRED glib-2.0) -pkg_check_modules (UDEV REQUIRED glib-2.0) -pkg_check_modules ( REQUIRED glib-2.0) -if (GLIB2_FOUND) - message("let's go $GLIB2_INCLUDE_DIRS $GLIB2_LIBRARIES") - #include_directories(${BZIP_INCLUDE_DIRS}) - #target_link_libraries (miracled ${BZIP2_LIBRARIES}) -endif (GLIB2_FOUND) -#target_link_libraries(miracled glib) install(TARGETS miracled DESTINATION bin) +INCLUDE_DIRECTORIES(${CMAKE_BINARY_DIR} ${CMAKE_SOURCE_DIR}/src ${CMAKE_SOURCE_DIR}/src/shared) ########### install files ############### diff --git a/src/ctl/CMakeLists.txt b/src/ctl/CMakeLists.txt index 453d81e..727a2d6 100644 --- a/src/ctl/CMakeLists.txt +++ b/src/ctl/CMakeLists.txt @@ -1,4 +1,5 @@ +find_package(Readline) ########### next target ############### set(miracle-wifictl_SRCS ctl.h @@ -8,25 +9,42 @@ set(miracle-wifictl_SRCS ctl.h add_executable(miracle-wifictl ${miracle-wifictl_SRCS}) -target_link_libraries(miracle-wifictl ${KDE4_KDECORE_LIBS}) - install(TARGETS miracle-wifictl DESTINATION bin) +if(READLINE_FOUND) + message(STATUS "Compiling with Readline support") + set_property(TARGET miracle-wifictl + APPEND + PROPERTY COMPILE_DEFINITIONS HAVE_READLINE) + target_link_libraries(miracle-wifictl ${READLINE_LIBRARY}) +endif(READLINE_FOUND) +target_link_libraries(miracle-wifictl miracle-shared) ########### next target ############### set(miracle-sinkctl_SRCS ctl.h ctl-cli.c ctl-sink.c ctl-wifi.c - sinkctl.c) + sinkctl.c + wfd.c) + add_executable(miracle-sinkctl ${miracle-sinkctl_SRCS}) -target_link_libraries(miracle-sinkctl ${KDE4_KDECORE_LIBS}) - install(TARGETS miracle-sinkctl DESTINATION bin) +if(READLINE_FOUND) + message(STATUS "Compiling with Readline support") + set_property(TARGET miracle-sinkctl + APPEND + PROPERTY COMPILE_DEFINITIONS HAVE_READLINE) + target_link_libraries(miracle-sinkctl ${READLINE_LIBRARY}) +endif(READLINE_FOUND) + +target_link_libraries(miracle-sinkctl miracle-shared) + +INCLUDE_DIRECTORIES(${CMAKE_BINARY_DIR} ${CMAKE_SOURCE_DIR}/src ${CMAKE_SOURCE_DIR}/src/shared) ########### install files ############### diff --git a/src/ctl/sinkctl.c b/src/ctl/sinkctl.c index 328a631..78e3c78 100644 --- a/src/ctl/sinkctl.c +++ b/src/ctl/sinkctl.c @@ -37,6 +37,7 @@ #include "wfd.h" #include "shl_macro.h" #include "shl_util.h" +#include "config.h" static sd_bus *bus; static struct ctl_wifi *wifi; diff --git a/src/ctl/wifictl.c b/src/ctl/wifictl.c index 894232d..47ba9d8 100644 --- a/src/ctl/wifictl.c +++ b/src/ctl/wifictl.c @@ -31,6 +31,7 @@ #include "ctl.h" #include "shl_macro.h" #include "shl_util.h" +#include "config.h" static sd_bus *bus; static struct ctl_wifi *wifi; diff --git a/src/dhcp/CMakeLists.txt b/src/dhcp/CMakeLists.txt index dfdcd13..7935d68 100644 --- a/src/dhcp/CMakeLists.txt +++ b/src/dhcp/CMakeLists.txt @@ -13,9 +13,20 @@ set(miracle-dhcp_SRCS dhcp.c add_executable(miracle-dhcp ${miracle-dhcp_SRCS}) -target_link_libraries(miracle-dhcp ${KDE4_KDECORE_LIBS}) +find_package(PkgConfig) +pkg_check_modules (GLIB2 REQUIRED glib-2.0) +pkg_check_modules (UDEV REQUIRED libudev) +link_directories( ${UDEV_LIBRARY_DIRS}) +include_directories( ${UDEV_INCLUDE_DIRS}) +target_link_libraries(miracle-dhcp ${UDEV_LIBRARIES}) +link_directories( ${GLIB2_LIBRARY_DIRS}) +include_directories( ${GLIB2_INCLUDE_DIRS}) +target_link_libraries(miracle-dhcp ${GLIB2_LIBRARIES}) + +target_link_libraries(miracle-dhcp miracle-shared) install(TARGETS miracle-dhcp DESTINATION bin) +INCLUDE_DIRECTORIES(${CMAKE_BINARY_DIR} ${CMAKE_SOURCE_DIR}/src ${CMAKE_SOURCE_DIR}/src/shared) ########### install files ############### diff --git a/src/dhcp/dhcp.c b/src/dhcp/dhcp.c index bd6c88c..6cda31b 100644 --- a/src/dhcp/dhcp.c +++ b/src/dhcp/dhcp.c @@ -65,6 +65,7 @@ #include #include "dhcp/gdhcp.h" #include "shl_log.h" +#include "config.h" static const char *arg_netdev; static const char *arg_ip_binary = "/bin/ip"; diff --git a/src/miracled.c b/src/miracled.c index 671c7ae..0a03ad4 100644 --- a/src/miracled.c +++ b/src/miracled.c @@ -34,6 +34,7 @@ #include "shl_macro.h" #include "shl_log.h" #include "shl_util.h" +#include "config.h" static void manager_free(struct manager *m) { diff --git a/src/shared/CMakeLists.txt b/src/shared/CMakeLists.txt index 640c078..af9d9ae 100644 --- a/src/shared/CMakeLists.txt +++ b/src/shared/CMakeLists.txt @@ -1,3 +1,4 @@ +set(CMAKE_C_FLAGS "-std=gnu11") ########### next target ############### find_package(PkgConfig) diff --git a/src/wifi/CMakeLists.txt b/src/wifi/CMakeLists.txt index 85090d5..27aa120 100644 --- a/src/wifi/CMakeLists.txt +++ b/src/wifi/CMakeLists.txt @@ -12,11 +12,28 @@ add_executable(miracle-wifid ${miracle-wifid_SRCS}) target_link_libraries(miracle-wifid ${KDE4_KDECORE_LIBS}) -install(TARGETS miracle-wifid DESTINATION bin) +include_directories(shared) +link_directories(shared) +target_link_libraries(miracle-wifid miracle-shared) +find_package(PkgConfig) +pkg_check_modules (GLIB2 REQUIRED glib-2.0) +pkg_check_modules (UDEV REQUIRED libudev) +link_directories( ${UDEV_LIBRARY_DIRS}) +include_directories( ${UDEV_INCLUDE_DIRS}) +target_link_libraries(miracle-wifid ${UDEV_LIBRARIES}) +link_directories( ${GLIB2_LIBRARY_DIRS}) +include_directories( ${GLIB2_INCLUDE_DIRS}) +target_link_libraries(miracle-wifid ${GLIB2_LIBRARIES}) + +install(TARGETS miracle-wifid DESTINATION bin) +INCLUDE_DIRECTORIES(${CMAKE_BINARY_DIR} ${CMAKE_SOURCE_DIR}/src ${CMAKE_SOURCE_DIR}/src/shared) ########### install files ############### +#set(CMAKE_MODULE_PATH ${PROJECT_SOURCE_DIR}/cmake-extensions/ ) + + diff --git a/src/wifi/wifid.c b/src/wifi/wifid.c index cef5f01..30676b1 100644 --- a/src/wifi/wifid.c +++ b/src/wifi/wifid.c @@ -38,6 +38,7 @@ #include "shl_util.h" #include "util.h" #include "wifid.h" +#include "config.h" #define DO_NOT_RELY_UDEV 0