aboutsummaryrefslogtreecommitdiff
path: root/src/CMakeLists.txt
blob: 7afb598086b9503d8a01c9d817baf7dd880ce62f (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
project(libpam_wrapper C)

include_directories(${CMAKE_BINARY_DIR})
add_library(pam_wrapper SHARED pam_wrapper.c)
target_link_libraries(pam_wrapper ${PAMWRAP_REQUIRED_LIBRARIES} ${CMAKE_THREAD_LIBS_INIT})

set_target_properties(
  pam_wrapper
    PROPERTIES
      VERSION
        ${LIBRARY_VERSION}
      SOVERSION
        ${LIBRARY_SOVERSION}
)

install(
  TARGETS
    pam_wrapper
  RUNTIME DESTINATION ${BIN_INSTALL_DIR}
  LIBRARY DESTINATION ${LIB_INSTALL_DIR}
  ARCHIVE DESTINATION ${LIB_INSTALL_DIR}
)

set(pamtest_SOURCES
	libpamtest.c
)

set(pamtest_HEADERS
	${CMAKE_SOURCE_DIR}/include/libpamtest.h
)
include_directories(${CMAKE_SOURCE_DIR}/include)

add_library(pamtest SHARED
	    ${pamtest_SOURCES}
	    ${pamtest_HEADERS}
)
target_link_libraries(pamtest
			${PAM_LIBRARIES})

install(
  TARGETS
    pamtest
  RUNTIME DESTINATION ${BIN_INSTALL_DIR}
  LIBRARY DESTINATION ${LIB_INSTALL_DIR}
  ARCHIVE DESTINATION ${LIB_INSTALL_DIR}
)

set(PAM_MODULES pam_matrix pam_get_items pam_set_items)

set(PAM_LIBRARIES pam)
if (HAVE_PAM_MISC)
	list(APPEND PAM_LIBRARIES pam_misc)
endif (HAVE_PAM_MISC)

set(PWRAP_PRIVATE_LIBRARIES
	${LIB_INSTALL_DIR}/pam_wrapper)

foreach(_PAM_MODULE ${PAM_MODULES})
	add_library(${_PAM_MODULE} MODULE modules/${_PAM_MODULE}.c)
	set_property(TARGET ${_PAM_MODULE} PROPERTY PREFIX "")

	target_link_libraries(${_PAM_MODULE}
				${PAM_LIBRARIES})

	install(
		TARGETS
			${_PAM_MODULE}
		LIBRARY DESTINATION ${PWRAP_PRIVATE_LIBRARIES}
		ARCHIVE DESTINATION ${PWRAP_PRIVATE_LIBRARIES})
endforeach()

# This needs to be at the end
if (POLICY CMP0026)
    cmake_policy(SET CMP0026 OLD)
endif()
get_target_property(PAM_WRAPPER_LOCATION pam_wrapper LOCATION)
set(PAM_WRAPPER_LOCATION ${PAM_WRAPPER_LOCATION} PARENT_SCOPE)