Skip to content

Commit 8535321

Browse files
committed
Move to CMake
Signed-off-by: Paul Cercueil <[email protected]>
1 parent bcb9974 commit 8535321

File tree

4 files changed

+73
-76
lines changed

4 files changed

+73
-76
lines changed

CMakeLists.txt

Lines changed: 60 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,60 @@
1+
cmake_minimum_required(VERSION 3.4)
2+
project(libopk LANGUAGES C VERSION 1.0)
3+
4+
include(GNUInstallDirs)
5+
6+
set(INSTALL_PKGCONFIG_DIR "${CMAKE_INSTALL_LIBDIR}/pkgconfig"
7+
CACHE PATH "Installation directory for pkgconfig (.pc) files")
8+
9+
if (CMAKE_COMPILER_IS_GNUCC)
10+
add_compile_options(-fvisibility=hidden -Wall -Wextra)
11+
endif ()
12+
13+
find_package(PkgConfig REQUIRED)
14+
pkg_check_modules(INI QUIET libini)
15+
if (NOT INI_FOUND)
16+
message(FATAL_ERROR "Missing dependency: libini")
17+
endif()
18+
19+
link_directories(${INI_LIBRARY_DIRS})
20+
include_directories(${INI_INCLUDE_DIRS})
21+
22+
pkg_check_modules(ZLIB QUIET zlib)
23+
if (ZLIB_FOUND)
24+
add_compile_definitions(USE_GZIP)
25+
link_directories(${ZLIB_LIBRARY_DIRS})
26+
include_directories(${ZLIB_INCLUDE_DIRS})
27+
endif (ZLIB_FOUND)
28+
29+
add_library(opk SHARED libopk.c unsqfs.c opk.h unsqfs.h)
30+
add_executable(opkinfo opkinfo.c)
31+
add_executable(opkrun opkrun.c)
32+
33+
set_target_properties(opk opkinfo opkrun PROPERTIES
34+
C_STANDARD 11
35+
C_STANDARD_REQUIRED ON
36+
C_EXTENSIONS OFF
37+
)
38+
39+
set_target_properties(opk PROPERTIES
40+
VERSION ${PROJECT_VERSION}
41+
SOVERSION ${PROJECT_VERSION_MAJOR}
42+
PUBLIC_HEADER opk.h
43+
)
44+
45+
target_link_libraries(opk LINK_PRIVATE ${INI_LIBRARIES} ${ZLIB_LIBRARIES})
46+
target_link_libraries(opkinfo opk)
47+
target_link_libraries(opkrun opk)
48+
49+
configure_file(libopk.pc.cmakein libopk.pc @ONLY)
50+
install(FILES ${CMAKE_BINARY_DIR}/libopk.pc DESTINATION "${INSTALL_PKGCONFIG_DIR}")
51+
52+
set(SETUP_PY ${CMAKE_SOURCE_DIR}/bindings/python/setup.py)
53+
configure_file(${SETUP_PY}.cmakein ${SETUP_PY} @ONLY)
54+
55+
install(TARGETS opk opkinfo opkrun
56+
ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
57+
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
58+
RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
59+
PUBLIC_HEADER DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}
60+
)

Makefile

Lines changed: 0 additions & 76 deletions
This file was deleted.
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
from distutils.core import setup
44

55
setup(name='libopk',
6+
version='@PROJECT_VERSION@',
67
description='Library to extract meta-data from OPK packages',
78
url='http://github.com/gcwnow/libopk',
89
py_modules=['opk'],

libopk.pc.cmakein

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
prefix=@CMAKE_INSTALL_PREFIX@
2+
exec_prefix=${prefix}
3+
libdir=${prefix}/@CMAKE_INSTALL_LIBDIR@
4+
includedir=${prefix}/@CMAKE_INSTALL_INCLUDEDIR@
5+
6+
Name: libopk
7+
Description: library to read files from OPK archives
8+
Version: @PROJECT_VERSION@
9+
10+
Requires:
11+
Libs: -L${libdir} -ini -lopk
12+
Cflags: -I${includedir}

0 commit comments

Comments
 (0)