freerdp: improve scripts for complex modules with monolithic build option

This commit is contained in:
Marc-André Moreau
2012-10-03 19:29:28 -04:00
parent 12554c172f
commit a9d4164a23
2 changed files with 54 additions and 70 deletions

View File

@@ -19,28 +19,28 @@ if(WITH_MONOLITHIC_BUILD)
set(CMAKE_POSITION_INDEPENDENT_CODE ON)
endif()
add_subdirectory(utils)
add_subdirectory(gdi)
add_subdirectory(rail)
add_subdirectory(cache)
add_subdirectory(codec)
add_subdirectory(crypto)
add_subdirectory(channels)
add_subdirectory(locale)
add_subdirectory(core)
set(FREERDP_MODULES
utils
gdi
rail
cache
codec
crypto
channels
locale
core)
foreach(FREERDP_MODULE ${FREERDP_MODULES})
add_subdirectory(${FREERDP_MODULE})
endforeach()
if(WITH_MONOLITHIC_BUILD)
add_library(freerdp
$<TARGET_OBJECTS:freerdp-utils>
$<TARGET_OBJECTS:freerdp-gdi>
$<TARGET_OBJECTS:freerdp-rail>
$<TARGET_OBJECTS:freerdp-cache>
$<TARGET_OBJECTS:freerdp-codec>
$<TARGET_OBJECTS:freerdp-crypto>
$<TARGET_OBJECTS:freerdp-channels>
$<TARGET_OBJECTS:freerdp-locale>
$<TARGET_OBJECTS:freerdp-core>)
foreach(FREERDP_MODULE ${FREERDP_MODULES})
set(FREERDP_OBJECTS ${FREERDP_OBJECTS} "$<TARGET_OBJECTS:freerdp-${FREERDP_MODULE}>")
endforeach()
add_library(freerdp ${FREERDP_OBJECTS})
set_target_properties(freerdp PROPERTIES VERSION ${FREERDP_VERSION_FULL} SOVERSION ${FREERDP_VERSION} PREFIX "lib")
target_link_libraries(freerdp ${FREERDP_LIBS})

View File

@@ -25,59 +25,43 @@ if(WITH_MONOLITHIC_BUILD)
set(CMAKE_POSITION_INDEPENDENT_CODE ON)
endif()
add_subdirectory(crt)
add_subdirectory(utils)
add_subdirectory(heap)
add_subdirectory(path)
add_subdirectory(io)
add_subdirectory(file)
add_subdirectory(error)
add_subdirectory(environment)
add_subdirectory(interlocked)
add_subdirectory(handle)
add_subdirectory(synch)
add_subdirectory(thread)
add_subdirectory(sysinfo)
add_subdirectory(bcrypt)
add_subdirectory(dsparse)
add_subdirectory(asn1)
add_subdirectory(rpc)
add_subdirectory(sspicli)
add_subdirectory(sspi)
add_subdirectory(registry)
add_subdirectory(library)
add_subdirectory(timezone)
add_subdirectory(winsock)
add_subdirectory(winhttp)
set(WINPR_MODULES
crt
utils
heap
path
io
file
error
environment
interlocked
handle
synch
thread
sysinfo
bcrypt
dsparse
asn1
rpc
sspicli
sspi
registry
library
timezone
winsock)
foreach(WINPR_MODULE ${WINPR_MODULES})
add_subdirectory(${WINPR_MODULE})
endforeach()
if(WITH_MONOLITHIC_BUILD)
add_library(winpr
$<TARGET_OBJECTS:winpr-crt>
$<TARGET_OBJECTS:winpr-utils>
$<TARGET_OBJECTS:winpr-heap>
$<TARGET_OBJECTS:winpr-path>
$<TARGET_OBJECTS:winpr-io>
$<TARGET_OBJECTS:winpr-file>
$<TARGET_OBJECTS:winpr-error>
$<TARGET_OBJECTS:winpr-environment>
$<TARGET_OBJECTS:winpr-interlocked>
$<TARGET_OBJECTS:winpr-handle>
$<TARGET_OBJECTS:winpr-synch>
$<TARGET_OBJECTS:winpr-thread>
$<TARGET_OBJECTS:winpr-sysinfo>
$<TARGET_OBJECTS:winpr-bcrypt>
$<TARGET_OBJECTS:winpr-dsparse>
$<TARGET_OBJECTS:winpr-asn1>
$<TARGET_OBJECTS:winpr-rpc>
$<TARGET_OBJECTS:winpr-sspicli>
$<TARGET_OBJECTS:winpr-sspi>
$<TARGET_OBJECTS:winpr-registry>
$<TARGET_OBJECTS:winpr-library>
$<TARGET_OBJECTS:winpr-timezone>
$<TARGET_OBJECTS:winpr-winsock>
$<TARGET_OBJECTS:winpr-winhttp>)
set_target_properties(winpr PROPERTIES VERSION ${FREERDP_VERSION_FULL} SOVERSION ${FREERDP_VERSION} PREFIX "lib")
foreach(WINPR_MODULE ${WINPR_MODULES})
set(WINPR_OBJECTS ${WINPR_OBJECTS} "$<TARGET_OBJECTS:winpr-${WINPR_MODULE}>")
endforeach()
add_library(winpr ${WINPR_OBJECTS})
set_target_properties(winpr PROPERTIES VERSION ${WINPR_VERSION_FULL} SOVERSION ${WINPR_VERSION} PREFIX "lib")
target_link_libraries(winpr ${WINPR_LIBS})
install(TARGETS winpr DESTINATION ${CMAKE_INSTALL_LIBDIR})