博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
CMakeLists.txt, pc, RPM spec Template for shared library
阅读量:4224 次
发布时间:2019-05-26

本文共 2392 字,大约阅读时间需要 7 分钟。

工程结构:

mysharedlib/

               packaging/

                        - mysharedlib.spec

               include/

                        - mysharedlib.h

               src/

                       - mysharedlib.c

               - CMakeLists.txt

               - mysharedlib.pc.in

mysharedlib.spec

Name:       mysharedlibSummary:    My shared libraryVersion:    0.0.1Release:    1Group:      System/librariesLicense:    Flora LicenseSource0:    %{name}-%{version}.tar.gzRequires(post): /sbin/ldconfigRequires(postun): /sbin/ldconfigBuildRequires:  cmakeBuildRequires:  pkgconfig(gtk+-2.0)%descriptionDescribe what your library used for.%package develSummary:  My shared libraryGroup:   Development%description develmy shared library development files%prep%setup -q%build%cmake . -DCMAKE_INSTALL_PREFIX=%{_prefix} -DVERSION=%{version}make %{?jobs:-j%jobs}%installrm -rf %{buildroot}%make_install%post -p /sbin/ldconfig%postun -p /sbin/ldconfig%files%defattr(-,root,root,-)%{_libdir}/*.so.*%files devel%defattr(-,root,root,-)%{_prefix}/include/*%{_libdir}/*.so%{_libdir}/pkgconfig/%{name}.pc

CMakeList.txt内容

CMAKE_MINIMUM_REQUIRED(VERSION 2.6)PROJECT(mysharedlib)SET(PREFIX ${CMAKE_INSTALL_PREFIX})SET(LIBDIR "${PREFIX}/lib")SET(INCLUDEDIR "${PREFIX}/include/mysharedlib")IF(NOT DEFINED VERSION)	SET(VERSION "0.0.1")ENDIF(NOT DEFINED VERSION)#ADD_DEFINITIONS("-DPROVIDERDIR=\"${PROVIDERDIR}\"")INCLUDE_DIRECTORIES(${CMAKE_CURRENT_SOURCE_DIR}/include)INCLUDE(FindPkgConfig)pkg_check_modules(PKGS REQUIRED gtk+-2.0)FOREACH(FLAG ${PKGS_CFLAGS})	SET(EXTRA_CFLAGS "${EXTRA_CFLAGS} ${FLAG}")ENDFOREACH(FLAG)SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${EXTRA_CFLAGS} -fPIC -Wall")SET(SRCS	src/mysharedlib.c)ADD_LIBRARY(${PROJECT_NAME} SHARED ${SRCS})TARGET_LINK_LIBRARIES(${PROJECT_NAME} ${PKGS_LDFLAGS} ${EXTRA_LDFLAGS})SET_TARGET_PROPERTIES(${PROJECT_NAME} PROPERTIES COMPILE_FLAGS "${CFLAGS}")SET_TARGET_PROPERTIES(${PROJECT_NAME} PROPERTIES SOVERSION ${VERSION})SET_TARGET_PROPERTIES(${PROJECT_NAME} PROPERTIES VERSION ${VERSION})CONFIGURE_FILE(${PROJECT_NAME}.pc.in ${PROJECT_NAME}.pc @ONLY)INSTALL(TARGETS ${PROJECT_NAME} DESTINATION ${LIBDIR})INSTALL(FILES ${CMAKE_SOURCE_DIR}/include/mysharedlib.h DESTINATION ${INCLUDEDIR})INSTALL(FILES ${CMAKE_SOURCE_DIR}/${PROJECT_NAME}.pc DESTINATION ${LIBDIR}/pkgconfig)

mysharedlib.pc.in

prefix=@PREFIX@exec_prefix=@PREFIX@libdir=@LIBDIR@includedir=@INCLUDEDIR@Name: mysharedlibDescription: my shared libraryVersion: @VERSION@Requires.private: gtk+-2.0Libs: -L${libdir} -l@PROJECT_NAME@Cflags: -I${includedir}

 

 

转载地址:http://ujuqi.baihongyu.com/

你可能感兴趣的文章
[linux]常用命令
查看>>
[reactnative]gradlew缺少运行权限引起的问题
查看>>
build.gradle配置变量,在Activity中使用
查看>>
Gradle配置全局变量
查看>>
[react-native][st]用到的东西
查看>>
百度云cdn,bos设置
查看>>
[chrome]好用的chrome Json 格式化插件
查看>>
[linux]terminal改变颜色,PS1的
查看>>
[Android]hex 64k解决
查看>>
[iphone]调出来控制的小圆球(控制点)
查看>>
[react-native]prop,state对比
查看>>
ssl问题被google 拒收
查看>>
[GreenDAO]like的坑
查看>>
[reactNative]unable to load script from assets ‘index.android.bundle’
查看>>
[mac]mac中使用python虚拟环境
查看>>
[mac]安装tree
查看>>
[gradle]设置默认用户名和密码
查看>>
[android]顶部toolbar size
查看>>
[mac]terminall 快速打开文件夹
查看>>
[转][Android]每个fragment常常需要用到不同的OptionsMenu
查看>>