SET(EXTRA_CFLAGS "${EXTRA_CFLAGS} ${flag}")
ENDFOREACH(flag)
-SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${EXTRA_CFLAGS} -fPIC -Wall -Werror -fvisibility=hidden")
+SET(CMAKE_C_FLAGS_BASE "${CMAKE_C_FLAGS} ${EXTRA_CFLAGS} -fPIC -Wall -Werror -fvisibility=hidden")
SET(CMAKE_C_FLAGS_DEBUG "-O0 -g")
+SET(CMAKE_EXE_LINKER_FLAGS "-Wl,--as-needed -pie")
# BUILD_MODULE macro builds src/DIR_NAME
# It will make libTITLE.so (TYPE == library) or TITLE (TYPE == binary)
ENDFOREACH()
IF("${TYPE}" STREQUAL "library")
+ SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS_BASE}")
ADD_LIBRARY(${TITLE} SHARED ${${TITLE}_HEADERS} ${${TITLE}_SOURCES})
TARGET_LINK_LIBRARIES(${TITLE} ${${PKGNAME}_LDFLAGS})
SET_TARGET_PROPERTIES(${TITLE} PROPERTIES
VERSION ${FULLVER} SOVERSION ${MAJORVER} CLEAN_DIRECT_OUTPUT 1)
INSTALL(TARGETS ${TITLE} DESTINATION ${LIB_INSTALL_DIR})
ELSE() # binary
+ SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS_BASE} -Wall -fPIE")
ADD_EXECUTABLE(${TITLE} ${${TITLE}_HEADERS} ${${TITLE}_SOURCES})
TARGET_LINK_LIBRARIES(${TITLE} ${COMMON_LIBRARY} ${${PKGNAME}_LDFLAGS} "-ldl")
INSTALL(TARGETS ${TITLE} DESTINATION bin)