Add nntrainer.spec for tizen packaging
authorjijoong.moon <jijoong.moon@samsung.com>
Wed, 18 Mar 2020 10:35:43 +0000 (19:35 +0900)
committer문지중/On-Device Lab(SR)/Principal Engineer/삼성전자 <jijoong.moon@samsung.com>
Thu, 19 Mar 2020 01:16:54 +0000 (10:16 +0900)
. add nntrainer.spec
. add nntrainer.manifest

**Self evaluation:**
1. Build test:  [X]Passed [ ]Failed [ ]Skipped
2. Run test:  [X]Passed [ ]Failed [ ]Skipped

Signed-off-by: jijoong.moon <jijoong.moon@samsung.com>
CMakeLists.txt
package.pc.in
packaging/nntrainer.manifest [new file with mode: 0644]
packaging/nntrainer.spec [new file with mode: 0644]

index d3d74eb..6983539 100644 (file)
@@ -1,6 +1,17 @@
 cmake_minimum_required(VERSION 2.8.3)
 
 project(nntrainer)
+set(NNTRAINER_MAJOR 0)
+set(NNTRAINER_MINOR 0)
+set(NNTRAINER_RELEASE 1)
+set(NNTRAINER_VERSION ${NNTRAINER_MAJOR}.${NNTRAINER_MINOR}.${NNTRAINER_RELEASE})
+
+option(TIZEN "Build for Tizen" OFF)
+
+set (BLASLIB blas-openblas)
+if(TIZEN)
+  set (BLASLIB openblas)
+endif(TIZEN)
 
 set(CMAKE_INSTALL_INCLUDEDIR ${CMAKE_INSTALL_PREFIX}/include/)
 set(CMAKE_INSTALL_LIBDIR ${CMAKE_INSTALL_PREFIX}/lib/)
@@ -16,36 +27,39 @@ include_directories(${INIPARSER_INCLUDE_DIRS})
 
 option(USE_BLAS "Use BLAS library" ON)
 
-include_directories( ${include_directories}
-                    ${CMAKE_CURRENT_SOURCE_DIR}
-                    )
-
 set(SRCS
-       src/neuralnet.cpp
-       src/tensor.cpp
-       src/layers.cpp
-       src/databuffer.cpp
-       )
+  src/neuralnet.cpp
+  src/tensor.cpp
+  src/layers.cpp
+  src/databuffer.cpp
+  )
 
-set(NNTRAINER_HEADERS include/neuralnet.h include/tensor.h include/layers.h include/databuffer.h)
+set(NNTRAINER_HEADERS
+  include/neuralnet.h
+  include/tensor.h
+  include/layers.h
+  include/databuffer.h
+  )
+
+include_directories(
+  ${CMAKE_CURRENT_SOURCE_DIR}
+  )
 
 if(USE_BLAS)
   ADD_DEFINITIONS(-DUSE_BLAS)
-  pkg_check_modules(BLAS cblas)
+  pkg_check_modules(BLAS ${BLASLIB})
   link_libraries(${BLAS_LIBRARIES})
   include_directories(${BLAS_INCLUDE_DIRS})
-  set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -lcblas")
-  set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -lcblas")
   message("[-DUSE_BLAS] is enabled")
 endif(USE_BLAS)
 
 add_library( ${PROJECT_NAME} SHARED ${SRCS} )
 
 configure_file("package.pc.in" "${PROJECT_BINARY_DIR}/${CMAKE_PROJECT_NAME}.pc" @ONLY)
-install (FILES "${PROJECT_BINARY_DIR}/${CMAKE_PROJECT_NAME}.pc" DESTINATION "${PKGCONFIG_INSTALL_DIR}")
+install (FILES "${PROJECT_BINARY_DIR}/${CMAKE_PROJECT_NAME}.pc" DESTINATION ${CMAKE_INSTALL_LIBDIR}/pkgconfig)
 
 install (TARGETS nntrainer
   LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
   )
 
-install (FILES ${NNTRAINER_HEADERS} DESTINATION include)
+install (FILES ${NNTRAINER_HEADERS} DESTINATION include/nntrainer)
index 84a903a..da59ab4 100644 (file)
@@ -3,7 +3,7 @@ libdir=${prefix}/lib
 includedir=${prefix}/include
 
 Name : nntrainer
-Version : 0.0.1
-Description: On Device Learning Framework
+Version : @NNTRAINER_VERSION@
+Description: Software Framework for Training Neural Network on Device
 Libs: -L${libdir} -lnntrainer
-Cflags: -I${includedir}
\ No newline at end of file
+Cflags: -I${includedir}/nntrainer
diff --git a/packaging/nntrainer.manifest b/packaging/nntrainer.manifest
new file mode 100644 (file)
index 0000000..017d22d
--- /dev/null
@@ -0,0 +1,5 @@
+<manifest>
+ <request>
+    <domain name="_"/>
+ </request>
+</manifest>
diff --git a/packaging/nntrainer.spec b/packaging/nntrainer.spec
new file mode 100644 (file)
index 0000000..0075746
--- /dev/null
@@ -0,0 +1,70 @@
+%define         enable_cblas 1
+
+Name:          nntrainer
+Summary:       Software framework for traning neural networks
+Version:        0.0.1
+Release:        0
+Packager:       Jijoong Moon <jijoong.moon@sansumg.com>
+License:        Apache-2.0
+Source0:        nntrainer-%{version}.tar.gz
+Source1001:     nntrainer.manifest
+
+BuildRequires:  cmake >= 2.8.3
+BuildRequires:  openblas-devel
+BuildRequires:  iniparser-devel
+Requires:       iniparser
+Requires:       libopenblas
+
+%description
+NNtrainer is Software Framework for Training Nerual Network Models on Devices.
+
+%package devel
+Summary:        Development package for custom nntrainer developers
+Requires:       nntrainer = %{version}-%{release}
+Requires:       iniparser-devel
+Requires:       openblas-devel
+
+%description devel
+Development pacage for custom nntrainer developers.
+This contains corresponding header files and .pc pkgconfig file.
+
+# Using cblas for Matrix calculation
+%if 0%{?enable_cblas}
+%define enable_cblas -DUSE_BLAS=ON
+%endif
+
+%prep
+%setup -q
+cp %{SOURCE1001} .
+
+%build
+CXXFLAGS=`echo $CXXFLAGS | sed -e "s|-std=gnu++11||"`
+
+mkdir -p build
+pushd build
+cmake .. -DCMAKE_INSTALL_PREFIX=/usr %{enable_cblas} -DTIZEN=ON
+make %{?jobs:-j%jobs}
+popd
+
+%install
+pushd build
+%make_install
+popd
+
+
+%files
+%manifest nntrainer.manifest
+%defattr(-,root,root,-)
+%license LICENSE
+%{_libdir}/*.so
+
+%files devel
+%{_includedir}/nntrainer/databuffer.h
+%{_includedir}/nntrainer/layers.h
+%{_includedir}/nntrainer/neuralnet.h
+%{_includedir}/nntrainer/tensor.h
+%{_libdir}/pkgconfig/nntrainer.pc
+
+%changelog
+* Wed Mar 18 2020 Jijoong Moon <jijoong.moon@samsung.com>
+- packaged nntrainer