X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=CMakeLists.txt;h=e2d443964e89d333f51502727ea5db8e01dc002b;hb=HEAD;hp=6edce55780d72784a610c4e659a2d77e96bc7767;hpb=a72230d3d7a1767292d5374e1f710b84df5e7845;p=platform%2Fcore%2Fsecurity%2Flibprivilege-control.git diff --git a/CMakeLists.txt b/CMakeLists.txt index 6edce55..e2d4439 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,12 +1,11 @@ CMAKE_MINIMUM_REQUIRED(VERSION 2.6) PROJECT(libprivilege-control C) +SET(TARGET_PRIVILEGE_CONTROL "privilege-control") SET(PREFIX ${CMAKE_INSTALL_PREFIX}) SET(EXEC_PREFIX "\${prefix}") -SET(LIBDIR "\${prefix}/lib") -SET(INCLUDEDIR "\${prefix}/include") -SET(SHAREDIR "${PREFIX}/share/privilege-control") -SET(HOMEDIR "/opt/home") +SET(SHAREDIR "${SHARE_INSTALL_PREFIX}/privilege-control") +SET(HOMEDIR "${TZ_SYS_HOME}") SET(VERSION 1.0) SET(VERSION_MAJOR 0) @@ -15,69 +14,94 @@ SET(VERSION "${VERSION_MAJOR}.0.2") INCLUDE_DIRECTORIES(${CMAKE_SOURCE_DIR}/include) INCLUDE(FindPkgConfig) -pkg_check_modules(pkgs REQUIRED libsmack dlog) +pkg_check_modules(pkgs REQUIRED libsmack libiri dlog sqlite3 libtzplatform-config) FOREACH(flag ${pkgs_CFLAGS}) SET(EXTRA_CFLAGS "${EXTRA_CFLAGS} ${flag}") ENDFOREACH(flag) -SET(CMAKE_C_FLAGS_CCOV "--coverage") -SET(CMAKE_CXX_FLAGS_CCOV "--coverage") +# TIZEN_ENGINEER_MODE is used in dlog.h file. +# Without this flag all logs defined with SLOGD macro +# will be expanded to empty instruction. + +SET(CMAKE_C_FLAGS_CCOV "--coverage") +SET(CMAKE_C_FLAGS_DEBUG "-O0 -g -ggdb -DDLOG_DEBUG_ENABLED -DTIZEN_DEBUG_ENABLE") +SET(CMAKE_C_FLAGS_RELEASE "-O2 -g") SET(src_dir "./src") SET(include_dir "./include") + ## Additional flag ADD_DEFINITIONS("-fvisibility=hidden") ADD_DEFINITIONS("-DSHAREDIR=${SHAREDIR}") ADD_DEFINITIONS("-DHOMEDIR=${HOMEDIR}") -ADD_DEFINITIONS("-Wall -Werror") +ADD_DEFINITIONS("-DLIBDIR=\"${LIB_INSTALL_DIR}\"") +ADD_DEFINITIONS("-Wall -Werror -Wextra") -ADD_DEFINITIONS("-DSMACK_ENABLED") -ADD_DEFINITIONS("-DDLOG_ENABLED") #enables dlogutil logs - -# Temporary turn off setting Smack for WRT -#ADD_DEFINITIONS("-DWRT_SMACK_ENABLED") +ADD_DEFINITIONS("-DDLOG_WARN_ENABLED") +ADD_DEFINITIONS("-DDLOG_ERROR_ENABLED") ################################################################################################### ## for libprivilege-control.so (library) INCLUDE_DIRECTORIES(${pkgs_INCLUDE_DIRS}) -SET(libprivilege-control_SOURCES ${src_dir}/privilege-control.c) -SET(libprivilege-control_LDFLAGS " -module -avoid-version ") +SET(libprivilege-control_SOURCES + ${src_dir}/privilege-control.c + ${src_dir}/access-db.c + ${src_dir}/common.c + ${src_dir}/rules-db.c + ${src_dir}/rules-db-internals.c + ) SET(libprivilege-control_CFLAGS " ${CFLAGS} -fPIC -I${include_dir}") -#SET(libprivilege-control_LIBADD " ") +SET(libprivilege-control_LIBADD "${pkgs_LDFLAGS} -lcap -lcrypt") -ADD_LIBRARY(privilege-control SHARED ${libprivilege-control_SOURCES}) -TARGET_LINK_LIBRARIES(privilege-control ${pkgs_LDFLAGS} ${pkgs_LIBRARIES}) -SET_TARGET_PROPERTIES(privilege-control PROPERTIES COMPILE_FLAGS "${libprivilege-control_CFLAGS}") -SET_TARGET_PROPERTIES(privilege-control PROPERTIES SOVERSION ${VERSION_MAJOR}) -SET_TARGET_PROPERTIES(privilege-control PROPERTIES VERSION ${VERSION}) +ADD_LIBRARY(${TARGET_PRIVILEGE_CONTROL} SHARED ${libprivilege-control_SOURCES}) +TARGET_LINK_LIBRARIES(${TARGET_PRIVILEGE_CONTROL} ${libprivilege-control_LIBADD} ${pkgs_LIBRARIES}) +SET_TARGET_PROPERTIES(${TARGET_PRIVILEGE_CONTROL} PROPERTIES COMPILE_FLAGS "${libprivilege-control_CFLAGS}") +SET_TARGET_PROPERTIES(${TARGET_PRIVILEGE_CONTROL} PROPERTIES SOVERSION ${VERSION_MAJOR}) +SET_TARGET_PROPERTIES(${TARGET_PRIVILEGE_CONTROL} PROPERTIES VERSION ${VERSION}) ################################################################################################### +## for rules-db-sql-udf.so (library) +SET(rules-db-sql-udf_SOURCES ./db/rules-db-sql-udf.c) +SET(rules-db-sql-udf_CFLAGS " ${CFLAGS} -fPIC") + +ADD_LIBRARY(rules-db-sql-udf MODULE ${rules-db-sql-udf_SOURCES}) +SET_TARGET_PROPERTIES(rules-db-sql-udf PROPERTIES COMPILE_FLAGS "${rules-db-sql-udf_CFLAGS}") -################################################################################################### -## for slp-su (excutable) -SET(slp-su_SOURCES ${src_dir}/slp-su.c) -SET(slp-su_LDFLAGS " -module -avoid-version ") -SET(slp-su_CFLAGS " ${CFLAGS} -fPIC -I${include_dir}") - -ADD_EXECUTABLE(slp-su ${slp-su_SOURCES}) -TARGET_LINK_LIBRARIES(slp-su ${pkgs_LDFLAGS} ${pkgs_LIBRARIES} privilege-control) -SET_TARGET_PROPERTIES(slp-su PROPERTIES COMPILE_FLAGS "${slp-su_CFLAGS}") ################################################################################################### -CONFIGURE_FILE(libprivilege-control.pc.in libprivilege-control.pc @ONLY) -FILE(GLOB smackfiles ${CMAKE_CURRENT_SOURCE_DIR}/permissions/*.smack) - -INSTALL(TARGETS privilege-control DESTINATION lib COMPONENT RuntimeLibraries) -INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/libprivilege-control.pc DESTINATION lib/pkgconfig) -INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/passwd DESTINATION /opt/etc/) -INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/group DESTINATION /opt/etc/) -INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/smack_default_rules DESTINATION /opt/etc/smack/accesses.d/ RENAME default) -INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/smack_default_labeling DESTINATION /etc/rc.d/init.d/) -INSTALL(FILES ${CMAKE_CURRENT_SOURCE_DIR}/include/privilege-control.h DESTINATION include) -INSTALL(FILES ${smackfiles} DESTINATION ${SHAREDIR}) -INSTALL(FILES ${CMAKE_CURRENT_SOURCE_DIR}/app_group_list DESTINATION ${SHAREDIR}) -INSTALL(FILES ${CMAKE_CURRENT_SOURCE_DIR}/dev_group_list DESTINATION ${SHAREDIR}) -INSTALL(DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/udev/ DESTINATION lib/udev) -INSTALL(PROGRAMS ${CMAKE_CURRENT_SOURCE_DIR}/slp-su DESTINATION bin) +CONFIGURE_FILE(libprivilege-control.pc.in libprivilege-control.pc @ONLY) +CONFIGURE_FILE(smack-rules.service.in smack-rules.service) + + +INSTALL(TARGETS ${TARGET_PRIVILEGE_CONTROL} DESTINATION ${LIB_INSTALL_DIR} COMPONENT RuntimeLibraries) +INSTALL(TARGETS rules-db-sql-udf DESTINATION ${LIB_INSTALL_DIR} COMPONENT RuntimeLibraries) +INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/libprivilege-control.pc DESTINATION ${LIB_INSTALL_DIR}/pkgconfig) +INSTALL(FILES ${CMAKE_CURRENT_SOURCE_DIR}/include/privilege-control.h DESTINATION ${INCLUDE_INSTALL_DIR}) +INSTALL(FILES .privilege_control_app_gids.db DESTINATION ${TZ_SYS_DB}) +#INSTALL(DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/udev/ DESTINATION lib/udev) + +INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/db/rules-db.sql DESTINATION ${SHAREDIR}/db) +INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/db/rules-db-data.sql DESTINATION ${SHAREDIR}/db) +INSTALL(DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/db/updates/ DESTINATION ${SHAREDIR}/db/updates) +INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/db/updater.sh DESTINATION ${SHAREDIR}/db + PERMISSIONS OWNER_READ + OWNER_WRITE + OWNER_EXECUTE + GROUP_READ + GROUP_EXECUTE + WORLD_READ + WORLD_EXECUTE) +INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/db/load-rules-db.sql DESTINATION ${SHAREDIR}/db) +INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/db/220.libprivilege-updater.patch.sh DESTINATION ${TZ_SYS_ETC}/opt/upgrade + PERMISSIONS OWNER_READ + OWNER_WRITE + OWNER_EXECUTE) + + +INSTALL(FILES ${PROJECT_SOURCE_DIR}/smack-rules.service + DESTINATION ${SYSTEMD_UNIT_DIR} + PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE) + +ADD_SUBDIRECTORY(api_feature_loader)