SET (this_target osp-appfw) INCLUDE_DIRECTORIES( ${SLP_INCLUDE_DIRS} ${CMAKE_SOURCE_DIR}/inc ${CMAKE_SOURCE_DIR}/src/base/inc ${CMAKE_SOURCE_DIR}/src/app/inc ${CMAKE_SOURCE_DIR}/src/security/inc ${CMAKE_SOURCE_DIR}/src/io/inc ) SET (${this_target}_SOURCE_FILES ${CMAKE_SOURCE_DIR}/src/osp-init/Osp.cpp ) SET(EXTRA_CFLAGS "${EXTRA_CFLAGS} -Wall" ) ## SET C COMPILER FLAGS SET(CMAKE_C_FLAGS "${OSP_DEBUG_FLAGS} ${OSP_OPT_FLAGS} ${CMAKE_C_FLAGS} ${EXTRA_CFLAGS} ${OSP_COMPILER_FLAGS}") ## SET CPP COMPILER FLAGS SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fvisibility=hidden") SET(CMAKE_CXX_FLAGS "${OSP_DEBUG_FLAGS} ${OSP_OPT_FLAGS} ${CMAKE_CXX_FLAGS} ${EXTRA_CFLAGS} ${OSP_COMPILER_FLAGS}") ## Create Library ADD_LIBRARY (${this_target} SHARED ${${this_target}_SOURCE_FILES}) SET(STATIC_LIBS app base base-runtime io locales security system text) SET_TARGET_PROPERTIES(${this_target} PROPERTIES LINK_INTERFACE_LIBRARIES "") ADD_DEPENDENCIES(${this_target} ${STATIC_LIBS}) MACRO(OSP_ADD_OBJS_IN_ARCHIVE archives) SET(LINK_OBJECTS_IN_ARCHIVE) FOREACH(archive ${ARGV}) SET(LINK_OBJECTS_IN_ARCHIVE "${LINK_OBJECTS_IN_ARCHIVE} -l${archive}") ENDFOREACH(archive) SET(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} -Wl,--whole-archive ${LINK_OBJECTS_IN_ARCHIVE} -Wl,-no-whole-archive") ENDMACRO(OSP_ADD_OBJS_IN_ARCHIVE) OSP_ADD_OBJS_IN_ARCHIVE(${STATIC_LIBS}) # add explicit dependency SET(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} -Wl,--no-undefined -Wl,--as-needed") TARGET_LINK_LIBRARIES( ${this_target} ${STATIC_LIBS}) TARGET_LINK_LIBRARIES(${this_target} "-ldl" ) TARGET_LINK_LIBRARIES(${this_target} "-lpthread" ) TARGET_LINK_LIBRARIES(${this_target} "-lrt" ) #TARGET_LINK_LIBRARIES(${this_target} "-ldukgenerator" ) #TARGET_LINK_LIBRARIES(${this_target} "-lcryptsvc" ) TARGET_LINK_LIBRARIES(${this_target} "-lprivacy-manager-client" ) TARGET_LINK_LIBRARIES(${this_target} "-lcapi-security-privilege-manager" ) TARGET_LINK_LIBRARIES(${this_target} ${pkgs_LDFLAGS}) SET_TARGET_PROPERTIES(${this_target} PROPERTIES VERSION ${FULLVER} SOVERSION ${MAJORVER} CLEAN_DIRECT_OUTPUT 1 ) ADD_CUSTOM_COMMAND(TARGET ${this_target} POST_BUILD COMMAND ${CMAKE_COMMAND} -E copy ${LIBRARY_OUTPUT_PATH}/${CMAKE_SHARED_LIBRARY_PREFIX}${this_target}${CMAKE_SHARED_LIBRARY_SUFFIX} ${LIBRARY_OUTPUT_PATH}/debug/${CMAKE_SHARED_LIBRARY_PREFIX}${this_target}${CMAKE_SHARED_LIBRARY_SUFFIX}.${FULLVER} COMMAND ${CMAKE_COMMAND} -E create_symlink ${CMAKE_SHARED_LIBRARY_PREFIX}${this_target}${CMAKE_SHARED_LIBRARY_SUFFIX}.${FULLVER} ${LIBRARY_OUTPUT_PATH}/debug/${CMAKE_SHARED_LIBRARY_PREFIX}${this_target}${CMAKE_SHARED_LIBRARY_SUFFIX}.${MAJORVER} COMMAND ${CMAKE_STRIP} --strip-unneeded ${LIBRARY_OUTPUT_PATH}/${CMAKE_SHARED_LIBRARY_PREFIX}${this_target}${CMAKE_SHARED_LIBRARY_SUFFIX} COMMENT "strip ${this_target}" ) SET(PC_NAME ${this_target}) SET(PC_REQUIRED ${pc_requires}) SET(PC_LDFLAGS -l${this_target}) SET(VERSION ${FULLVER}) # pkgconfig file CONFIGURE_FILE(${CMAKE_SOURCE_DIR}/${this_target}.pc.in ${CMAKE_SOURCE_DIR}/${this_target}.pc @ONLY)