Merge pull request #204 from TDT-AG/pr/20181114-libplatforminfo
libplatforminfo: Add custom target
This commit is contained in:
commit
1dc8416ac1
|
@ -0,0 +1,33 @@
|
||||||
|
menu "Configuration"
|
||||||
|
depends on PACKAGE_libplatforminfo
|
||||||
|
|
||||||
|
config LIBPLATFORMINFO_CUSTOM
|
||||||
|
bool "Use custom definitions"
|
||||||
|
default n
|
||||||
|
help
|
||||||
|
Use custom definitions to get the platform informations
|
||||||
|
from special files.
|
||||||
|
|
||||||
|
if LIBPLATFORMINFO_CUSTOM
|
||||||
|
|
||||||
|
config LIBPLATFORMINFO_BOARD_NAME
|
||||||
|
string "File to board name information"
|
||||||
|
default "/tmp/sysinfo/board_name"
|
||||||
|
help
|
||||||
|
File to board name information
|
||||||
|
|
||||||
|
config LIBPLATFORMINFO_MODEL
|
||||||
|
string "File to model information"
|
||||||
|
default "/tmp/sysinfo/model"
|
||||||
|
help
|
||||||
|
File to model information
|
||||||
|
|
||||||
|
config LIBPLATFORMINFO_IMAGE_NAME
|
||||||
|
string "File to image name information"
|
||||||
|
default ""
|
||||||
|
help
|
||||||
|
File to image name information
|
||||||
|
|
||||||
|
endif # if LIBPLATFORMINFO_CUSTOM
|
||||||
|
|
||||||
|
endmenu
|
|
@ -18,10 +18,21 @@ define Package/libplatforminfo
|
||||||
TITLE:=Platform information library
|
TITLE:=Platform information library
|
||||||
endef
|
endef
|
||||||
|
|
||||||
|
define Package/libplatforminfo/config
|
||||||
|
source "$(SOURCE)/Config.in"
|
||||||
|
endef
|
||||||
|
|
||||||
CMAKE_OPTIONS += \
|
CMAKE_OPTIONS += \
|
||||||
-DTARGET:STRING="$(BOARD)" \
|
-DTARGET:STRING="$(BOARD)" \
|
||||||
-DSUBTARGET:STRING="$(SUBTARGET)"
|
-DSUBTARGET:STRING="$(SUBTARGET)"
|
||||||
|
|
||||||
|
ifeq ($(CONFIG_LIBPLATFORMINFO_CUSTOM),y)
|
||||||
|
CMAKE_OPTIONS += \
|
||||||
|
-DCUSTOM:BOOL=ON \
|
||||||
|
-DBOARD_NAME:STRING=$(CONFIG_LIBPLATFORMINFO_BOARD_NAME) \
|
||||||
|
-DMODEL:STRING=$(CONFIG_LIBPLATFORMINFO_MODEL) \
|
||||||
|
-DIMAGE_NAME:STRING=$(CONFIG_LIBPLATFORMINFO_IMAGE_NAME)
|
||||||
|
endif
|
||||||
|
|
||||||
define Package/libplatforminfo/install
|
define Package/libplatforminfo/install
|
||||||
$(INSTALL_DIR) $(1)/usr/lib
|
$(INSTALL_DIR) $(1)/usr/lib
|
||||||
|
|
|
@ -7,6 +7,7 @@ include_directories(${CMAKE_CURRENT_SOURCE_DIR}/include)
|
||||||
|
|
||||||
set(TARGET "" CACHE STRING "OpenWrt target")
|
set(TARGET "" CACHE STRING "OpenWrt target")
|
||||||
set(SUBTARGET "" CACHE STRING "OpenWrt subtarget")
|
set(SUBTARGET "" CACHE STRING "OpenWrt subtarget")
|
||||||
|
set(CUSTOM OFF CACHE BOOL "Use custom file definitions")
|
||||||
|
|
||||||
add_definitions(-DTARGET=${TARGET})
|
add_definitions(-DTARGET=${TARGET})
|
||||||
|
|
||||||
|
@ -20,6 +21,12 @@ else(SUBTARGET)
|
||||||
add_definitions(-DTARGET_${TARGET})
|
add_definitions(-DTARGET_${TARGET})
|
||||||
endif(SUBTARGET)
|
endif(SUBTARGET)
|
||||||
|
|
||||||
|
if(CUSTOM)
|
||||||
|
set(TARGET_SOURCE "targets/custom.c")
|
||||||
|
add_definitions(-DBOARD_NAME=\"${BOARD_NAME}\")
|
||||||
|
add_definitions(-DMODEL=\"${MODEL}\")
|
||||||
|
add_definitions(-DIMAGE_NAME=\"${IMAGE_NAME}\")
|
||||||
|
else(CUSTOM)
|
||||||
if(EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/targets/${FULL_TARGET}.c")
|
if(EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/targets/${FULL_TARGET}.c")
|
||||||
set(TARGET_SOURCE "targets/${FULL_TARGET}.c")
|
set(TARGET_SOURCE "targets/${FULL_TARGET}.c")
|
||||||
elseif(EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/targets/${TARGET}.c")
|
elseif(EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/targets/${TARGET}.c")
|
||||||
|
@ -27,6 +34,7 @@ elseif(EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/targets/${TARGET}.c")
|
||||||
else()
|
else()
|
||||||
set(TARGET_SOURCE "targets/default.c")
|
set(TARGET_SOURCE "targets/default.c")
|
||||||
endif()
|
endif()
|
||||||
|
endif(CUSTOM)
|
||||||
|
|
||||||
|
|
||||||
add_library(platforminfo SHARED
|
add_library(platforminfo SHARED
|
||||||
|
|
|
@ -0,0 +1,63 @@
|
||||||
|
/*
|
||||||
|
Copyright (c) 2018, Florian Eckert <fe@dev.tdt.de>
|
||||||
|
All rights reserved.
|
||||||
|
|
||||||
|
Redistribution and use in source and binary forms, with or without
|
||||||
|
modification, are permitted provided that the following conditions are met:
|
||||||
|
|
||||||
|
1. Redistributions of source code must retain the above copyright notice,
|
||||||
|
this list of conditions and the following disclaimer.
|
||||||
|
2. Redistributions in binary form must reproduce the above copyright notice,
|
||||||
|
this list of conditions and the following disclaimer in the documentation
|
||||||
|
and/or other materials provided with the distribution.
|
||||||
|
|
||||||
|
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
||||||
|
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||||
|
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
||||||
|
DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
|
||||||
|
FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
||||||
|
DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
|
||||||
|
SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
|
||||||
|
CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
|
||||||
|
OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
||||||
|
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
#include <libplatforminfo.h>
|
||||||
|
#include "../common.h"
|
||||||
|
|
||||||
|
|
||||||
|
static char * board_name = NULL;
|
||||||
|
static char * model = NULL;
|
||||||
|
static char * image_name = NULL;
|
||||||
|
|
||||||
|
|
||||||
|
__attribute__((constructor)) static void init(void) {
|
||||||
|
board_name = read_line(BOARD_NAME);
|
||||||
|
model = read_line(MODEL);
|
||||||
|
image_name = read_line(IMAGE_NAME);
|
||||||
|
}
|
||||||
|
|
||||||
|
__attribute__((destructor)) static void deinit(void) {
|
||||||
|
free(board_name);
|
||||||
|
free(model);
|
||||||
|
free(image_name);
|
||||||
|
|
||||||
|
board_name = NULL;
|
||||||
|
model = NULL;
|
||||||
|
image_name = NULL;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
const char * platforminfo_get_board_name(void) {
|
||||||
|
return board_name;
|
||||||
|
}
|
||||||
|
|
||||||
|
const char * platforminfo_get_model(void) {
|
||||||
|
return model;
|
||||||
|
}
|
||||||
|
|
||||||
|
const char * platforminfo_get_image_name(void) {
|
||||||
|
return image_name;
|
||||||
|
}
|
Loading…
Reference in New Issue