PERMISSIONS OWNER_EXECUTE OWNER_WRITE OWNER_READ
GROUP_EXECUTE GROUP_READ
WORLD_EXECUTE WORLD_READ)
+INSTALL(DIRECTORY ${LIBRARY_OUTPUT_PATH}/ DESTINATION lib/osp
+ FILES_MATCHING PATTERN "libosp-newlib.so*"
+ PERMISSIONS OWNER_EXECUTE OWNER_WRITE OWNER_READ
+ GROUP_EXECUTE GROUP_READ
+ WORLD_EXECUTE WORLD_READ)
INSTALL(DIRECTORY ${LIBRARY_OUTPUT_PATH}/ DESTINATION lib/osp-server
FILES_MATCHING PATTERN "libosp-appfw-server.so*"
PERMISSIONS OWNER_EXECUTE OWNER_WRITE OWNER_READ
%define __strip /bin/true
Name: osp-appfw
-Summary: The App Framework library of OSP
-Version: 1.2.2.0
+Summary: The App Framework library of OSP
+Version: 1.2.2.1
Release: 1
Group: TO_BE/FILLED_IN
License: Apache License, Version 2.0 or Flora
Requires: osp-env-config
Requires: sqlite
-Provides: libosp-appfw.so.1
+Provides: libosp-appfw.so.1, libosp-newlib.so.1
-Requires(post): /sbin/ldconfig
+Requires(post): /sbin/ldconfig
Requires(post): coreutils
Requires(postun): /sbin/ldconfig
/usr/share/locale/*
/usr/etc/*
%{_libdir}/osp/libosp-appfw.so*
+%{_libdir}/osp/libosp-newlib.so*
%{_libdir}/osp-server/libosp-appfw-server.so*
%{_libdir}/osp-server/libosp-system-server.so*
%files debug
%{_libdir}/osp/debug/libosp-appfw.so*
+%{_libdir}/osp/debug/libosp-newlib.so*
%{_libdir}/osp-server/debug/libosp-appfw-server.so*
%{_libdir}/osp-server/debug/libosp-system-server.so*
ADD_SUBDIRECTORY(app)
ADD_SUBDIRECTORY(io)
ADD_SUBDIRECTORY(base)
+ADD_SUBDIRECTORY(base/runtime base-runtime)
ADD_SUBDIRECTORY(locales)
ADD_SUBDIRECTORY(security)
ADD_SUBDIRECTORY(system)
## Create Library
ADD_LIBRARY (${this_target} SHARED ${${this_target}_SOURCE_FILES})
-SET(STATIC_LIBS app base io locales security system text newlib-compat)
+SET(STATIC_LIBS app base base-runtime io locales security system text)
SET_TARGET_PROPERTIES(${this_target} PROPERTIES LINK_INTERFACE_LIBRARIES "")
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-as-needed -losp-newlib")
+
SET(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} -Wl,--no-undefined -Wl,--as-needed")
TARGET_LINK_LIBRARIES( ${this_target} ${STATIC_LIBS})
${CMAKE_SOURCE_DIR}/src/io/inc
inc
collection
- runtime
utility
- ext/minizip
)
SET (${this_target}_SOURCE_FILES
FBaseTypes.cpp
FBaseUuId.cpp
FBase_NativeError.cpp
- FBaseInit.cpp
FBase_Exception.cpp
FBaseFloatMatrix.cpp
FBaseFloatMatrix3.cpp
collection/FBaseColMultiHashMap.cpp
collection/FBaseColHashMap.cpp
collection/FBaseColTypes.cpp
- runtime/FBaseRt_Event.cpp
- runtime/FBaseRt_EventImpl.cpp
- runtime/FBaseRtEvent.cpp
- runtime/FBaseRt_Process.cpp
- runtime/FBaseRt_EventManager.cpp
- runtime/FBaseRt_ITask.cpp
- runtime/FBaseRt_EventDispatcher.cpp
- runtime/FBaseRt_EventPendingOperationManager.cpp
- runtime/FBaseRtIEventListener.cpp
- runtime/FBaseRtLibrary.cpp
- runtime/FBaseRt_LibraryImpl.cpp
- runtime/FBaseRtTimer.cpp
- runtime/FBaseRtMemoryManager.cpp
- runtime/FBaseRt_TimerImpl.cpp
- runtime/FBaseRt_ThreadImpl.cpp
- runtime/FBaseRt_EventDrivenThreadImpl.cpp
- runtime/FBaseRt_EventDrivenThreadEventArg.cpp
- runtime/FBaseRt_EventDrivenThreadEvent.cpp
- runtime/FBaseRt_MainThreadImpl.cpp
- runtime/FBaseRtMonitor.cpp
- runtime/FBaseRt_MonitorImpl.cpp
- runtime/FBaseRtMutex.cpp
- runtime/FBaseRt_MutexImpl.cpp
- runtime/FBaseRtIRunnable.cpp
- runtime/FBaseRtSemaphore.cpp
- runtime/FBaseRt_SemaphoreImpl.cpp
- runtime/FBaseRtEventDrivenThread.cpp
- runtime/FBaseRtThread.cpp
- runtime/FBaseRt_ThreadManager.cpp
- runtime/FBaseRt_WorkerThreadImpl.cpp
- runtime/FBaseRt_WaitingLoopImpl.cpp
- runtime/FBaseRtWaitingLoop.cpp
utility/FBaseUtilDeflator.cpp
utility/FBaseUtilStringTokenizer.cpp
utility/FBaseUtilInflator.cpp
--- /dev/null
+SET (this_target base-runtime)
+
+INCLUDE_DIRECTORIES(
+ ${SLP_INCLUDE_DIRS}
+ ${CMAKE_SOURCE_DIR}/inc
+ ${CMAKE_SOURCE_DIR}/src/app/inc
+ ${CMAKE_SOURCE_DIR}/src/base/inc
+ ${CMAKE_SOURCE_DIR}/src/base/runtime
+)
+
+SET (${this_target}_SOURCE_FILES
+ ../FBaseInit.cpp
+ FBaseRt_Event.cpp
+ FBaseRt_EventImpl.cpp
+ FBaseRtEvent.cpp
+ FBaseRt_Process.cpp
+ FBaseRt_EventManager.cpp
+ FBaseRt_ITask.cpp
+ FBaseRt_EventDispatcher.cpp
+ FBaseRt_EventPendingOperationManager.cpp
+ FBaseRtIEventListener.cpp
+ FBaseRtLibrary.cpp
+ FBaseRt_LibraryImpl.cpp
+ FBaseRtTimer.cpp
+ FBaseRtMemoryManager.cpp
+ FBaseRt_TimerImpl.cpp
+ FBaseRt_ThreadImpl.cpp
+ FBaseRt_EventDrivenThreadImpl.cpp
+ FBaseRt_EventDrivenThreadEventArg.cpp
+ FBaseRt_EventDrivenThreadEvent.cpp
+ FBaseRt_MainThreadImpl.cpp
+ FBaseRtMonitor.cpp
+ FBaseRt_MonitorImpl.cpp
+ FBaseRtMutex.cpp
+ FBaseRt_MutexImpl.cpp
+ FBaseRtIRunnable.cpp
+ FBaseRtSemaphore.cpp
+ FBaseRt_SemaphoreImpl.cpp
+ FBaseRtEventDrivenThread.cpp
+ FBaseRtThread.cpp
+ FBaseRt_ThreadManager.cpp
+ FBaseRt_WorkerThreadImpl.cpp
+ FBaseRt_WaitingLoopImpl.cpp
+ FBaseRtWaitingLoop.cpp
+)
+
+SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fvisibility=hidden")
+
+## SET EXTRA COMPILER FLAGS
+SET(EXTRA_CFLAGS "${EXTRA_CFLAGS} -fPIC" )
+
+## 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 "${OSP_DEBUG_FLAGS} ${OSP_OPT_FLAGS} ${CMAKE_CXX_FLAGS} ${EXTRA_CFLAGS} ${OSP_COMPILER_FLAGS}")
+
+## Create Library
+ADD_LIBRARY (${this_target} STATIC ${${this_target}_SOURCE_FILES})
-SET (this_target newlib-compat)
+SET (this_target osp-newlib)
INCLUDE_DIRECTORIES(
- ${SLP_INCLUDE_DIRS}
+ ${SLP_INCLUDE_DIRS}
${CMAKE_SOURCE_DIR}/inc
)
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}")
+SET(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} -Wl,--no-undefined -Wl,--as-needed")
+
## Create Library
-ADD_LIBRARY (${this_target} STATIC ${${this_target}_SOURCE_FILES})
+ADD_LIBRARY (${this_target} SHARED ${${this_target}_SOURCE_FILES})
+
+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}"
+)
+