CMakeLists.txt, pc, RPM spec Template for shared library
2015-04-30 11:40
483 查看
工程结构:
mysharedlib/
packaging/
- mysharedlib.spec
include/
- mysharedlib.h
src/
- mysharedlib.c
- CMakeLists.txt
- mysharedlib.pc.in
mysharedlib.spec
CMakeList.txt内容
mysharedlib.pc.in
mysharedlib/
packaging/
- mysharedlib.spec
include/
- mysharedlib.h
src/
- mysharedlib.c
- CMakeLists.txt
- mysharedlib.pc.in
mysharedlib.spec
Name: mysharedlib Summary: My shared library Version: 0.0.1 Release: 1 Group: System/libraries License: Flora License Source0: %{name}-%{version}.tar.gz Requires(post): /sbin/ldconfig Requires(postun): /sbin/ldconfig BuildRequires: cmake BuildRequires: pkgconfig(gtk+-2.0) %description Describe what your library used for. %package devel Summary: My shared library Group: Development %description devel my shared library development files %prep %setup -q %build %cmake . -DCMAKE_INSTALL_PREFIX=%{_prefix} -DVERSION=%{version} make %{?jobs:-j%jobs} %install rm -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: mysharedlib Description: my shared library Version: @VERSION@ Requires.private: gtk+-2.0 Libs: -L${libdir} -l@PROJECT_NAME@ Cflags: -I${includedir}
相关文章推荐
- CMakeLists.txt, pc, RPM spec Template for shared library
- CMakeLists.txt for nginx
- CMake Error at CMakeLists.txt:14 (INCLUDE_FOR_PROJECT): Unknown CMake command"INCLUDE_FOR_PROJECT"
- CMake Error: TARGETS given no LIBRARY DESTINATION for shared library target
- CMakelists.txt for compiling HDF5
- Cmake知识----编写CMakeLists.txt文件编译C/C++程序
- A Template for C-Language Library Creation - 一个创建C语言运行库的模板
- android 在module内创建CMakeLists.txt来实现生成多个.so文件
- Ubuntu16.04: CUDA编程及CMakeLists.txt编写
- linux下使用CmakeLists.txt生成makefile文件进行编译
- QT static link App cmake CMakeLists.txt
- 以一个实例说明 CMakeLists.txt 文件的编写
- ncnn阅读 - CMakeLists.txt
- ROS之catkin介绍(CMakeLists.txt 、package.xml)
- CMakeLists.txt的写法
- Cmake CMakeLists.txt配置文件通用模板
- CMakeLists.txt的写法
- 以一个实例说明 CMakeLists.txt 文件的编写
- Makefile 和 CMakeLists.txt
- MySQL5.5安装出现CMake错误找不到CMakelists.txt原因