diff --git a/CMakeLists.txt b/CMakeLists.txt index feed88dc7..67e326a0b 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -55,7 +55,7 @@ endif() # Default to build shared libs if(NOT DEFINED BUILD_SHARED_LIBS) - set(BUILD_SHARED_LIBS ON) + set(BUILD_SHARED_LIBS ON) endif() # Compiler-specific flags @@ -95,6 +95,23 @@ if(MSVC) SET(LIBRARY_OUTPUT_PATH ${PROJECT_BINARY_DIR}) endif() +# This forces the MSVC runtime to be statically linked + +if(MSVC) + foreach(flag_var CMAKE_C_FLAGS_DEBUG CMAKE_CXX_FLAGS_DEBUG CMAKE_C_FLAGS_RELEASE CMAKE_CXX_FLAGS_RELEASE CMAKE_C_FLAGS_MINSIZEREL CMAKE_CXX_FLAGS_MINSIZEREL CMAKE_C_FLAGS_RELWITHDEBINFO CMAKE_CXX_FLAGS_RELWITHDEBINFO) + string(REGEX REPLACE "/MD" "/MT" ${flag_var} "${${flag_var}}") + string(REGEX REPLACE "/MDd" "/MTd" ${flag_var} "${${flag_var}}") + endforeach(flag_var) + set(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG}" CACHE STRING "MSVC C Debug MT flags " FORCE) + set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG}" CACHE STRING "MSVC CXX Debug MT flags " FORCE) + set(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE}" CACHE STRING "MSVC C Release MT flags " FORCE) + set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE}" CACHE STRING "MSVC CXX Release MT flags " FORCE) + set(CMAKE_C_FLAGS_MINSIZEREL "${CMAKE_C_FLAGS_MINSIZEREL}" CACHE STRING "MSVC C Debug MT flags " FORCE) + set(CMAKE_CXX_FLAGS_MINSIZEREL "${CMAKE_CXX_FLAGS_MINSIZEREL}" CACHE STRING "MSVC C Release MT flags " FORCE) + set(CMAKE_C_FLAGS_RELWITHDEBINFO "${CMAKE_C_FLAGS_RELWITHDEBINFO}" CACHE STRING "MSVC CXX Debug MT flags " FORCE) + set(CMAKE_CXX_FLAGS_RELWITHDEBINFO "${CMAKE_CXX_FLAGS_RELWITHDEBINFO}" CACHE STRING "MSVC CXX Release MT flags " FORCE) +endif() + # config.h definition for installable headers check_include_files(limits.h FREERDP_HAVE_LIMITS_H) check_include_files(stdint.h FREERDP_HAVE_STDINT_H) @@ -108,6 +125,9 @@ check_include_files(limits.h HAVE_LIMITS_H) check_include_files(stdint.h HAVE_STDINT_H) check_include_files(stdbool.h HAVE_STDBOOL_H) check_include_files(inttypes.h HAVE_INTTYPES_H) +check_include_files(sys/modem.h HAVE_SYS_MODEM_H) +check_include_files(sys/filio.h HAVE_SYS_FILIO_H) +check_include_files(sys/strtio.h HAVE_SYS_STRTIO_H) check_struct_has_member("struct tm" tm_gmtoff time.h HAVE_TM_GMTOFF) @@ -159,13 +179,17 @@ set(FREERDP_PLUGIN_PATH "${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_LIBDIR}/freerdp set(FREERDP_EXTENSION_PATH "${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_LIBDIR}/freerdp/extensions") # Include directories -include_directories(${CMAKE_CURRENT_BINARY_DIR}) -include_directories(${CMAKE_CURRENT_BINARY_DIR}/include) -include_directories(${CMAKE_SOURCE_DIR}/include) +include_directories(${CMAKE_CURRENT_SOURCE_DIR}) +include_directories(${CMAKE_CURRENT_SOURCE_DIR}/include) + +# WinPR +set(WINPR_INCLUDE_DIR "${CMAKE_SOURCE_DIR}/winpr/include") +include_directories(${WINPR_INCLUDE_DIR}) # Configure files -configure_file(${CMAKE_CURRENT_SOURCE_DIR}/config.h.in ${CMAKE_CURRENT_BINARY_DIR}/config.h) -configure_file(${CMAKE_CURRENT_SOURCE_DIR}/include/freerdp/config.h.in ${CMAKE_CURRENT_BINARY_DIR}/include/freerdp/config.h) +add_definitions("-DHAVE_CONFIG_H") +configure_file(${CMAKE_CURRENT_SOURCE_DIR}/config.h.in ${CMAKE_CURRENT_SOURCE_DIR}/config.h) +configure_file(${CMAKE_CURRENT_SOURCE_DIR}/include/freerdp/config.h.in ${CMAKE_CURRENT_SOURCE_DIR}/include/freerdp/config.h) # Generate pkg-config if(NOT MSVC) @@ -181,19 +205,12 @@ if(WITH_CUNIT) endif() # Sub-directories + add_subdirectory(include) -add_subdirectory(libfreerdp-utils) add_subdirectory(winpr) -add_subdirectory(libfreerdp-gdi) -add_subdirectory(libfreerdp-rail) -add_subdirectory(libfreerdp-cache) -add_subdirectory(libfreerdp-codec) -add_subdirectory(libfreerdp-crypto) -add_subdirectory(libfreerdp-channels) -add_subdirectory(libfreerdp-locale) -add_subdirectory(libfreerdp-core) +add_subdirectory(libfreerdp) if(WITH_CHANNELS) add_subdirectory(channels) @@ -222,4 +239,3 @@ string(TOLOWER ${CMAKE_PROJECT_NAME} CMAKE_PROJECT_NAME_lower) set(CPACK_SOURCE_PACKAGE_FILE_NAME "${CMAKE_PROJECT_NAME_lower}-${FREERDP_VERSION_FULL}") include(CPack) - diff --git a/channels/cliprdr/CMakeLists.txt b/channels/cliprdr/CMakeLists.txt index 03fb0ba20..5c30a67ef 100644 --- a/channels/cliprdr/CMakeLists.txt +++ b/channels/cliprdr/CMakeLists.txt @@ -22,12 +22,15 @@ set(CLIPRDR_SRCS cliprdr_format.c cliprdr_format.h cliprdr_main.c - cliprdr_main.h -) + cliprdr_main.h) add_library(cliprdr ${CLIPRDR_SRCS}) set_target_properties(cliprdr PROPERTIES PREFIX "") -target_link_libraries(cliprdr freerdp-utils) +if(WITH_MONOLITHIC_BUILD) + target_link_libraries(cliprdr freerdp) +else() + target_link_libraries(cliprdr freerdp-utils) +endif() install(TARGETS cliprdr DESTINATION ${FREERDP_PLUGIN_PATH}) diff --git a/channels/cliprdr/cliprdr_format.c b/channels/cliprdr/cliprdr_format.c index 19099b080..4f603dbf3 100644 --- a/channels/cliprdr/cliprdr_format.c +++ b/channels/cliprdr/cliprdr_format.c @@ -18,6 +18,10 @@ * limitations under the License. */ +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + #include #include #include diff --git a/channels/cliprdr/cliprdr_main.c b/channels/cliprdr/cliprdr_main.c index 075330354..b7f4e136d 100644 --- a/channels/cliprdr/cliprdr_main.c +++ b/channels/cliprdr/cliprdr_main.c @@ -18,7 +18,10 @@ * limitations under the License. */ +#ifdef HAVE_CONFIG_H #include "config.h" +#endif + #include #include #include diff --git a/channels/drdynvc/CMakeLists.txt b/channels/drdynvc/CMakeLists.txt index 602d41c62..b1deab049 100644 --- a/channels/drdynvc/CMakeLists.txt +++ b/channels/drdynvc/CMakeLists.txt @@ -28,7 +28,11 @@ set(DRDYNVC_SRCS add_library(drdynvc ${DRDYNVC_SRCS}) set_target_properties(drdynvc PROPERTIES PREFIX "") -target_link_libraries(drdynvc freerdp-utils) +if(WITH_MONOLITHIC_BUILD) + target_link_libraries(drdynvc freerdp) +else() + target_link_libraries(drdynvc freerdp-utils) +endif() install(TARGETS drdynvc DESTINATION ${FREERDP_PLUGIN_PATH}) diff --git a/channels/drdynvc/audin/CMakeLists.txt b/channels/drdynvc/audin/CMakeLists.txt index 37fe00462..65534eb87 100644 --- a/channels/drdynvc/audin/CMakeLists.txt +++ b/channels/drdynvc/audin/CMakeLists.txt @@ -19,15 +19,18 @@ set(AUDIN_SRCS audin_main.c - audin_main.h -) + audin_main.h) include_directories(..) add_library(audin ${AUDIN_SRCS}) set_target_properties(audin PROPERTIES PREFIX "") -target_link_libraries(audin freerdp-utils) +if(WITH_MONOLITHIC_BUILD) + target_link_libraries(audin freerdp) +else() + target_link_libraries(audin freerdp-utils) +endif() install(TARGETS audin DESTINATION ${FREERDP_PLUGIN_PATH}) diff --git a/channels/drdynvc/audin/alsa/CMakeLists.txt b/channels/drdynvc/audin/alsa/CMakeLists.txt index 786f9ce2c..e7a0df6a2 100644 --- a/channels/drdynvc/audin/alsa/CMakeLists.txt +++ b/channels/drdynvc/audin/alsa/CMakeLists.txt @@ -18,8 +18,7 @@ # limitations under the License. set(AUDIN_ALSA_SRCS - audin_alsa.c -) + audin_alsa.c) include_directories(..) include_directories(${ALSA_INCLUDE_DIRS}) @@ -27,7 +26,12 @@ include_directories(${ALSA_INCLUDE_DIRS}) add_library(audin_alsa ${AUDIN_ALSA_SRCS}) set_target_properties(audin_alsa PROPERTIES PREFIX "") -target_link_libraries(audin_alsa freerdp-utils) +if(WITH_MONOLITHIC_BUILD) + target_link_libraries(audin_alsa freerdp) +else() + target_link_libraries(audin_alsa freerdp-utils) +endif() + target_link_libraries(audin_alsa ${ALSA_LIBRARIES}) install(TARGETS audin_alsa DESTINATION ${FREERDP_PLUGIN_PATH}) diff --git a/channels/drdynvc/audin/alsa/audin_alsa.c b/channels/drdynvc/audin/alsa/audin_alsa.c index e6cf74950..cfada9a9f 100644 --- a/channels/drdynvc/audin/alsa/audin_alsa.c +++ b/channels/drdynvc/audin/alsa/audin_alsa.c @@ -17,9 +17,14 @@ * limitations under the License. */ +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + #include #include #include + #include #include #include diff --git a/channels/drdynvc/audin/audin_main.c b/channels/drdynvc/audin/audin_main.c index c9b6e8fc0..71395d421 100644 --- a/channels/drdynvc/audin/audin_main.c +++ b/channels/drdynvc/audin/audin_main.c @@ -17,9 +17,14 @@ * limitations under the License. */ +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + #include #include #include + #include #include #include diff --git a/channels/drdynvc/audin/pulse/CMakeLists.txt b/channels/drdynvc/audin/pulse/CMakeLists.txt index c27f87068..bb81b0b99 100644 --- a/channels/drdynvc/audin/pulse/CMakeLists.txt +++ b/channels/drdynvc/audin/pulse/CMakeLists.txt @@ -27,7 +27,12 @@ include_directories(${PULSEAUDIO_INCLUDE_DIR}) add_library(audin_pulse ${AUDIN_PULSE_SRCS}) set_target_properties(audin_pulse PROPERTIES PREFIX "") -target_link_libraries(audin_pulse freerdp-utils) +if(WITH_MONOLITHIC_BUILD) + target_link_libraries(audin_pulse freerdp) +else() + target_link_libraries(audin_pulse freerdp-utils) +endif() + target_link_libraries(audin_pulse ${PULSEAUDIO_LIBRARY}) install(TARGETS audin_pulse DESTINATION ${FREERDP_PLUGIN_PATH}) diff --git a/channels/drdynvc/audin/pulse/audin_pulse.c b/channels/drdynvc/audin/pulse/audin_pulse.c index e7af29009..1ad2cc285 100644 --- a/channels/drdynvc/audin/pulse/audin_pulse.c +++ b/channels/drdynvc/audin/pulse/audin_pulse.c @@ -17,9 +17,14 @@ * limitations under the License. */ +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + #include #include #include + #include #include #include diff --git a/channels/drdynvc/drdynvc_main.c b/channels/drdynvc/drdynvc_main.c index 27ad531b7..1807df11f 100644 --- a/channels/drdynvc/drdynvc_main.c +++ b/channels/drdynvc/drdynvc_main.c @@ -17,9 +17,14 @@ * limitations under the License. */ +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + #include #include #include + #include #include #include diff --git a/channels/drdynvc/drdynvc_types.h b/channels/drdynvc/drdynvc_types.h index a08a60523..5c9ce5947 100644 --- a/channels/drdynvc/drdynvc_types.h +++ b/channels/drdynvc/drdynvc_types.h @@ -20,7 +20,10 @@ #ifndef __DRDYNVC_TYPES_H #define __DRDYNVC_TYPES_H +#ifdef HAVE_CONFIG_H #include "config.h" +#endif + #include #include #include diff --git a/channels/drdynvc/dvcman.c b/channels/drdynvc/dvcman.c index 9bd210af0..a8aed81a9 100644 --- a/channels/drdynvc/dvcman.c +++ b/channels/drdynvc/dvcman.c @@ -17,9 +17,14 @@ * limitations under the License. */ +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + #include #include #include + #include #include #include diff --git a/channels/drdynvc/tsmf/CMakeLists.txt b/channels/drdynvc/tsmf/CMakeLists.txt index c4e940730..baf97c55b 100644 --- a/channels/drdynvc/tsmf/CMakeLists.txt +++ b/channels/drdynvc/tsmf/CMakeLists.txt @@ -32,15 +32,18 @@ set(TSMF_SRCS tsmf_main.h tsmf_media.c tsmf_media.h - tsmf_types.h -) + tsmf_types.h) include_directories(..) add_library(tsmf ${TSMF_SRCS}) set_target_properties(tsmf PROPERTIES PREFIX "") -target_link_libraries(tsmf freerdp-utils) +if(WITH_MONOLITHIC_BUILD) + target_link_libraries(tsmf freerdp) +else() + target_link_libraries(tsmf freerdp-utils) +endif() install(TARGETS tsmf DESTINATION ${FREERDP_PLUGIN_PATH}) diff --git a/channels/drdynvc/tsmf/alsa/CMakeLists.txt b/channels/drdynvc/tsmf/alsa/CMakeLists.txt index c769a1857..4b984e4bf 100644 --- a/channels/drdynvc/tsmf/alsa/CMakeLists.txt +++ b/channels/drdynvc/tsmf/alsa/CMakeLists.txt @@ -27,7 +27,12 @@ include_directories(${ALSA_INCLUDE_DIRS}) add_library(tsmf_alsa ${TSMF_ALSA_SRCS}) set_target_properties(tsmf_alsa PROPERTIES PREFIX "") -target_link_libraries(tsmf_alsa freerdp-utils) +if(WITH_MONOLITHIC_BUILD) + target_link_libraries(tsmf_alsa freerdp) +else() + target_link_libraries(tsmf_alsa freerdp-utils) +endif() + target_link_libraries(tsmf_alsa ${ALSA_LIBRARIES}) install(TARGETS tsmf_alsa DESTINATION ${FREERDP_PLUGIN_PATH}) diff --git a/channels/drdynvc/tsmf/alsa/tsmf_alsa.c b/channels/drdynvc/tsmf/alsa/tsmf_alsa.c index d1e587f3e..a05ff09fa 100644 --- a/channels/drdynvc/tsmf/alsa/tsmf_alsa.c +++ b/channels/drdynvc/tsmf/alsa/tsmf_alsa.c @@ -17,6 +17,10 @@ * limitations under the License. */ +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + #include #include #include diff --git a/channels/drdynvc/tsmf/ffmpeg/CMakeLists.txt b/channels/drdynvc/tsmf/ffmpeg/CMakeLists.txt index 22e208e5f..290237b5c 100644 --- a/channels/drdynvc/tsmf/ffmpeg/CMakeLists.txt +++ b/channels/drdynvc/tsmf/ffmpeg/CMakeLists.txt @@ -34,7 +34,12 @@ if(CMAKE_COMPILER_IS_GNUCC) endif() endif() -target_link_libraries(tsmf_ffmpeg freerdp-utils) +if(WITH_MONOLITHIC_BUILD) + target_link_libraries(tsmf_ffmpeg freerdp) +else() + target_link_libraries(tsmf_ffmpeg freerdp-utils) +endif() + target_link_libraries(tsmf_ffmpeg ${FFMPEG_LIBRARIES}) install(TARGETS tsmf_ffmpeg DESTINATION ${FREERDP_PLUGIN_PATH}) diff --git a/channels/drdynvc/tsmf/ffmpeg/tsmf_ffmpeg.c b/channels/drdynvc/tsmf/ffmpeg/tsmf_ffmpeg.c index 903f64320..f823b7693 100644 --- a/channels/drdynvc/tsmf/ffmpeg/tsmf_ffmpeg.c +++ b/channels/drdynvc/tsmf/ffmpeg/tsmf_ffmpeg.c @@ -17,9 +17,14 @@ * limitations under the License. */ +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + #include #include #include + #include #include #include diff --git a/channels/drdynvc/tsmf/gstreamer/CMakeLists.txt b/channels/drdynvc/tsmf/gstreamer/CMakeLists.txt index a957667f5..f1a72abbf 100644 --- a/channels/drdynvc/tsmf/gstreamer/CMakeLists.txt +++ b/channels/drdynvc/tsmf/gstreamer/CMakeLists.txt @@ -27,7 +27,12 @@ include_directories(${GSTREAMER_INCLUDE_DIRS}) add_library(tsmf_gstreamer ${TSMF_GSTREAMER_SRCS}) set_target_properties(tsmf_gstreamer PROPERTIES PREFIX "") -target_link_libraries(tsmf_gstreamer freerdp-utils) +if(WITH_MONOLITHIC_BUILD) + target_link_libraries(tsmf_gstreamer freerdp) +else() + target_link_libraries(tsmf_gstreamer freerdp-utils) +endif() + target_link_libraries(tsmf_gstreamer ${GSTREAMER_LIBRARIES} gstapp-0.10 gstinterfaces-0.10 Xrandr X11 Xext) install(TARGETS tsmf_gstreamer DESTINATION ${FREERDP_PLUGIN_PATH}) diff --git a/channels/drdynvc/tsmf/gstreamer/tsmf_gstreamer.c b/channels/drdynvc/tsmf/gstreamer/tsmf_gstreamer.c index 7243dcd33..0a5c8580c 100644 --- a/channels/drdynvc/tsmf/gstreamer/tsmf_gstreamer.c +++ b/channels/drdynvc/tsmf/gstreamer/tsmf_gstreamer.c @@ -17,6 +17,10 @@ * limitations under the License. */ +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + #include #include #include diff --git a/channels/drdynvc/tsmf/pulse/CMakeLists.txt b/channels/drdynvc/tsmf/pulse/CMakeLists.txt index ae137a555..ef488cd13 100644 --- a/channels/drdynvc/tsmf/pulse/CMakeLists.txt +++ b/channels/drdynvc/tsmf/pulse/CMakeLists.txt @@ -18,8 +18,7 @@ # limitations under the License. set(TSMF_PULSE_SRCS - tsmf_pulse.c -) + tsmf_pulse.c) include_directories(..) include_directories(${PULSEAUDIO_INCLUDE_DIR}) @@ -27,8 +26,11 @@ include_directories(${PULSEAUDIO_INCLUDE_DIR}) add_library(tsmf_pulse ${TSMF_PULSE_SRCS}) set_target_properties(tsmf_pulse PROPERTIES PREFIX "") -target_link_libraries(tsmf_pulse freerdp-utils) -target_link_libraries(tsmf_pulse ${PULSEAUDIO_LIBRARY}) +if(WITH_MONOLITHIC_BUILD) + target_link_libraries(tsmf_pulse ${PULSEAUDIO_LIBRARY} freerdp) +else() + target_link_libraries(tsmf_pulse ${PULSEAUDIO_LIBRARY} freerdp-utils) +endif() install(TARGETS tsmf_pulse DESTINATION ${FREERDP_PLUGIN_PATH}) diff --git a/channels/drdynvc/tsmf/pulse/tsmf_pulse.c b/channels/drdynvc/tsmf/pulse/tsmf_pulse.c index de3c9018c..ca162ae72 100644 --- a/channels/drdynvc/tsmf/pulse/tsmf_pulse.c +++ b/channels/drdynvc/tsmf/pulse/tsmf_pulse.c @@ -17,10 +17,15 @@ * limitations under the License. */ +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + #include #include #include #include + #include #include diff --git a/channels/drdynvc/tsmf/tsmf_audio.c b/channels/drdynvc/tsmf/tsmf_audio.c index 5a1a14512..e9f37ce92 100644 --- a/channels/drdynvc/tsmf/tsmf_audio.c +++ b/channels/drdynvc/tsmf/tsmf_audio.c @@ -17,9 +17,14 @@ * limitations under the License. */ +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + #include #include #include + #include #include diff --git a/channels/drdynvc/tsmf/tsmf_codec.c b/channels/drdynvc/tsmf/tsmf_codec.c index 7bc61c38e..64296b1c3 100644 --- a/channels/drdynvc/tsmf/tsmf_codec.c +++ b/channels/drdynvc/tsmf/tsmf_codec.c @@ -18,9 +18,14 @@ * limitations under the License. */ +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + #include #include #include + #include #include diff --git a/channels/drdynvc/tsmf/tsmf_decoder.c b/channels/drdynvc/tsmf/tsmf_decoder.c index db31c027b..5a604eb30 100644 --- a/channels/drdynvc/tsmf/tsmf_decoder.c +++ b/channels/drdynvc/tsmf/tsmf_decoder.c @@ -17,9 +17,14 @@ * limitations under the License. */ +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + #include #include #include + #include #include diff --git a/channels/drdynvc/tsmf/tsmf_ifman.c b/channels/drdynvc/tsmf/tsmf_ifman.c index 4e49d271a..71a6d9bef 100644 --- a/channels/drdynvc/tsmf/tsmf_ifman.c +++ b/channels/drdynvc/tsmf/tsmf_ifman.c @@ -18,9 +18,14 @@ * limitations under the License. */ +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + #include #include #include + #include #include diff --git a/channels/drdynvc/tsmf/tsmf_main.c b/channels/drdynvc/tsmf/tsmf_main.c index 66823d2fb..d76961c4e 100644 --- a/channels/drdynvc/tsmf/tsmf_main.c +++ b/channels/drdynvc/tsmf/tsmf_main.c @@ -17,9 +17,14 @@ * limitations under the License. */ +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + #include #include #include + #include #include diff --git a/channels/drdynvc/tsmf/tsmf_media.c b/channels/drdynvc/tsmf/tsmf_media.c index 87cc4e74b..60a04e786 100644 --- a/channels/drdynvc/tsmf/tsmf_media.c +++ b/channels/drdynvc/tsmf/tsmf_media.c @@ -18,6 +18,10 @@ * limitations under the License. */ +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + #include #include #include diff --git a/channels/rail/CMakeLists.txt b/channels/rail/CMakeLists.txt index 316411118..6e6a45441 100644 --- a/channels/rail/CMakeLists.txt +++ b/channels/rail/CMakeLists.txt @@ -26,7 +26,11 @@ set(RAIL_SRCS add_library(rail ${RAIL_SRCS}) set_target_properties(rail PROPERTIES PREFIX "") -target_link_libraries(rail freerdp-utils) +if(WITH_MONOLITHIC_BUILD) + target_link_libraries(rail freerdp) +else() + target_link_libraries(rail freerdp-utils) +endif() install(TARGETS rail DESTINATION ${FREERDP_PLUGIN_PATH}) diff --git a/channels/rail/rail_main.c b/channels/rail/rail_main.c index 3b2c63a1d..06c3b5bf0 100644 --- a/channels/rail/rail_main.c +++ b/channels/rail/rail_main.c @@ -19,9 +19,14 @@ * limitations under the License. */ +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + #include #include #include + #include #include #include diff --git a/channels/rail/rail_orders.c b/channels/rail/rail_orders.c index a5a641678..09826f149 100644 --- a/channels/rail/rail_orders.c +++ b/channels/rail/rail_orders.c @@ -18,6 +18,10 @@ * limitations under the License. */ +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + #include #include diff --git a/channels/rdpdbg/CMakeLists.txt b/channels/rdpdbg/CMakeLists.txt index db562a047..7387269da 100644 --- a/channels/rdpdbg/CMakeLists.txt +++ b/channels/rdpdbg/CMakeLists.txt @@ -24,6 +24,10 @@ set(RDPDBG_SRCS add_library(rdpdbg ${RDPDBG_SRCS}) set_target_properties(rdpdbg PROPERTIES PREFIX "") -target_link_libraries(rdpdbg freerdp-utils) +if(WITH_MONOLITHIC_BUILD) + target_link_libraries(rdpdbg freerdp) +else() + target_link_libraries(rdpdbg freerdp-utils) +endif() install(TARGETS rdpdbg DESTINATION ${FREERDP_PLUGIN_PATH}) diff --git a/channels/rdpdbg/rdpdbg_main.c b/channels/rdpdbg/rdpdbg_main.c index c4d821736..a1cdc212c 100644 --- a/channels/rdpdbg/rdpdbg_main.c +++ b/channels/rdpdbg/rdpdbg_main.c @@ -18,9 +18,14 @@ * limitations under the License. */ +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + #include #include #include + #include #include #include diff --git a/channels/rdpdr/CMakeLists.txt b/channels/rdpdr/CMakeLists.txt index b24836e12..55b0e09ba 100644 --- a/channels/rdpdr/CMakeLists.txt +++ b/channels/rdpdr/CMakeLists.txt @@ -27,13 +27,16 @@ set(RDPDR_SRCS irp.c irp.h rdpdr_main.c - rdpdr_main.h -) + rdpdr_main.h) add_library(rdpdr ${RDPDR_SRCS}) set_target_properties(rdpdr PROPERTIES PREFIX "") -target_link_libraries(rdpdr freerdp-utils) +if(WITH_MONOLITHIC_BUILD) + target_link_libraries(rdpdr freerdp) +else() + target_link_libraries(rdpdr freerdp-utils) +endif() install(TARGETS rdpdr DESTINATION ${FREERDP_PLUGIN_PATH}) diff --git a/channels/rdpdr/devman.c b/channels/rdpdr/devman.c index 5c15b1f22..d1b5ef02b 100644 --- a/channels/rdpdr/devman.c +++ b/channels/rdpdr/devman.c @@ -18,10 +18,14 @@ * limitations under the License. */ +#ifdef HAVE_CONFIG_H #include "config.h" +#endif + #include #include #include + #include #include #include diff --git a/channels/rdpdr/disk/CMakeLists.txt b/channels/rdpdr/disk/CMakeLists.txt index c1acd8058..aaac503a0 100644 --- a/channels/rdpdr/disk/CMakeLists.txt +++ b/channels/rdpdr/disk/CMakeLists.txt @@ -20,14 +20,17 @@ set(DISK_SRCS disk_file.c disk_file.h - disk_main.c -) + disk_main.c) include_directories(..) add_library(disk ${DISK_SRCS}) set_target_properties(disk PROPERTIES PREFIX "") -target_link_libraries(disk freerdp-utils) +if(WITH_MONOLITHIC_BUILD) + target_link_libraries(disk freerdp) +else() + target_link_libraries(disk freerdp-utils) +endif() install(TARGETS disk DESTINATION ${FREERDP_PLUGIN_PATH}) diff --git a/channels/rdpdr/disk/disk_file.c b/channels/rdpdr/disk/disk_file.c index 5454b1b99..44745fb11 100644 --- a/channels/rdpdr/disk/disk_file.c +++ b/channels/rdpdr/disk/disk_file.c @@ -18,6 +18,10 @@ * limitations under the License. */ +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + #ifndef _WIN32 #define __USE_LARGEFILE64 #define _LARGEFILE_SOURCE @@ -26,7 +30,6 @@ #include #endif -#include "config.h" #include #include #include diff --git a/channels/rdpdr/disk/disk_main.c b/channels/rdpdr/disk/disk_main.c index ad0b5a218..44126dd93 100644 --- a/channels/rdpdr/disk/disk_main.c +++ b/channels/rdpdr/disk/disk_main.c @@ -18,6 +18,10 @@ * limitations under the License. */ +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + #ifndef _WIN32 #define __USE_LARGEFILE64 #define _LARGEFILE_SOURCE @@ -26,12 +30,11 @@ #include #endif - -#include "config.h" #include #include #include #include + #include #include #include diff --git a/channels/rdpdr/irp.c b/channels/rdpdr/irp.c index 3668b1cc4..859e20793 100644 --- a/channels/rdpdr/irp.c +++ b/channels/rdpdr/irp.c @@ -18,7 +18,10 @@ * limitations under the License. */ +#ifdef HAVE_CONFIG_H #include "config.h" +#endif + #include #include #include diff --git a/channels/rdpdr/parallel/CMakeLists.txt b/channels/rdpdr/parallel/CMakeLists.txt index 44387f57b..024f12995 100644 --- a/channels/rdpdr/parallel/CMakeLists.txt +++ b/channels/rdpdr/parallel/CMakeLists.txt @@ -26,6 +26,10 @@ include_directories(..) add_library(parallel ${PARALLEL_SRCS}) set_target_properties(parallel PROPERTIES PREFIX "") -target_link_libraries(parallel freerdp-utils) +if(WITH_MONOLITHIC_BUILD) + target_link_libraries(parallel freerdp) +else() + target_link_libraries(parallel freerdp-utils) +endif() install(TARGETS parallel DESTINATION ${FREERDP_PLUGIN_PATH}) diff --git a/channels/rdpdr/parallel/parallel_main.c b/channels/rdpdr/parallel/parallel_main.c index 94435841c..91f2b258d 100644 --- a/channels/rdpdr/parallel/parallel_main.c +++ b/channels/rdpdr/parallel/parallel_main.c @@ -18,6 +18,10 @@ * limitations under the License. */ +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + #include #include #include diff --git a/channels/rdpdr/printer/CMakeLists.txt b/channels/rdpdr/printer/CMakeLists.txt index d0f184cf7..ea4e19fa4 100644 --- a/channels/rdpdr/printer/CMakeLists.txt +++ b/channels/rdpdr/printer/CMakeLists.txt @@ -19,15 +19,14 @@ set(PRINTER_SRCS printer_main.c - printer_main.h -) + printer_main.h) if(WITH_CUPS) set(PRINTER_SRCS ${PRINTER_SRCS} printer_cups.c - printer_cups.h - ) + printer_cups.h) + include_directories(${CUPS_INCLUDE_DIR}) add_definitions(-DWITH_CUPS) endif() @@ -37,7 +36,11 @@ include_directories(..) add_library(printer ${PRINTER_SRCS}) set_target_properties(printer PROPERTIES PREFIX "") -target_link_libraries(printer freerdp-utils) +if(WITH_MONOLITHIC_BUILD) + target_link_libraries(printer freerdp) +else() + target_link_libraries(printer freerdp-utils) +endif() if(WITH_CUPS) target_link_libraries(printer ${CUPS_LIBRARIES}) diff --git a/channels/rdpdr/printer/printer_cups.c b/channels/rdpdr/printer/printer_cups.c index 1f0c58cc1..84d0a2ce8 100644 --- a/channels/rdpdr/printer/printer_cups.c +++ b/channels/rdpdr/printer/printer_cups.c @@ -17,12 +17,18 @@ * limitations under the License. */ +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + #include #include #include #include + #include #include + #include #include diff --git a/channels/rdpdr/printer/printer_main.c b/channels/rdpdr/printer/printer_main.c index d379102aa..fdedd193a 100644 --- a/channels/rdpdr/printer/printer_main.c +++ b/channels/rdpdr/printer/printer_main.c @@ -17,10 +17,14 @@ * limitations under the License. */ +#ifdef HAVE_CONFIG_H #include "config.h" +#endif + #include #include #include + #include #include #include diff --git a/channels/rdpdr/rdpdr_capabilities.c b/channels/rdpdr/rdpdr_capabilities.c index c31dbeadf..0b1b81e51 100644 --- a/channels/rdpdr/rdpdr_capabilities.c +++ b/channels/rdpdr/rdpdr_capabilities.c @@ -18,10 +18,14 @@ * limitations under the License. */ +#ifdef HAVE_CONFIG_H #include "config.h" +#endif + #include #include #include + #include #include diff --git a/channels/rdpdr/rdpdr_main.c b/channels/rdpdr/rdpdr_main.c index c8c10925d..c7fcbb05c 100644 --- a/channels/rdpdr/rdpdr_main.c +++ b/channels/rdpdr/rdpdr_main.c @@ -18,10 +18,14 @@ * limitations under the License. */ +#ifdef HAVE_CONFIG_H #include "config.h" +#endif + #include #include #include + #include #include #include diff --git a/channels/rdpdr/rdpdr_types.h b/channels/rdpdr/rdpdr_types.h index a87dad289..c5594e4d0 100644 --- a/channels/rdpdr/rdpdr_types.h +++ b/channels/rdpdr/rdpdr_types.h @@ -21,7 +21,6 @@ #ifndef __RDPDR_TYPES_H #define __RDPDR_TYPES_H -#include "config.h" #include #include #include diff --git a/channels/rdpdr/serial/CMakeLists.txt b/channels/rdpdr/serial/CMakeLists.txt index 40c962a58..4b3ac4492 100644 --- a/channels/rdpdr/serial/CMakeLists.txt +++ b/channels/rdpdr/serial/CMakeLists.txt @@ -21,14 +21,17 @@ set(serial_SRCS serial_tty.c serial_tty.h serial_constants.h - serial_main.c -) + serial_main.c) include_directories(..) add_library(serial ${serial_SRCS}) set_target_properties(serial PROPERTIES PREFIX "") -target_link_libraries(serial freerdp-utils) +if(WITH_MONOLITHIC_BUILD) + target_link_libraries(serial freerdp) +else() + target_link_libraries(serial freerdp-utils) +endif() install(TARGETS serial DESTINATION ${FREERDP_PLUGIN_PATH}) diff --git a/channels/rdpdr/serial/serial_main.c b/channels/rdpdr/serial/serial_main.c index 3bee5abd0..547edbfa1 100644 --- a/channels/rdpdr/serial/serial_main.c +++ b/channels/rdpdr/serial/serial_main.c @@ -18,13 +18,15 @@ * limitations under the License. */ +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + #include #include #include #include -#include "config.h" - #ifdef HAVE_SYS_MODEM_H #include #endif diff --git a/channels/rdpdr/serial/serial_tty.c b/channels/rdpdr/serial/serial_tty.c index 3408b5c57..4dfa690e7 100644 --- a/channels/rdpdr/serial/serial_tty.c +++ b/channels/rdpdr/serial/serial_tty.c @@ -18,10 +18,14 @@ * limitations under the License. */ +#ifdef HAVE_CONFIG_H #include "config.h" +#endif + #include #include #include + #include #include #include @@ -70,7 +74,6 @@ #define TIOCOUTQ FIONWRITE #endif - static uint32 tty_write_data(SERIAL_TTY* tty, uint8* data, int len); static void tty_set_termios(SERIAL_TTY* tty); static boolean tty_get_termios(SERIAL_TTY* tty); diff --git a/channels/rdpdr/smartcard/CMakeLists.txt b/channels/rdpdr/smartcard/CMakeLists.txt index 816fc09f4..c486e1ba7 100644 --- a/channels/rdpdr/smartcard/CMakeLists.txt +++ b/channels/rdpdr/smartcard/CMakeLists.txt @@ -28,7 +28,12 @@ include_directories(${PCSC_INCLUDE_DIRS}) add_library(scard ${SCARD_SRCS}) set_target_properties(scard PROPERTIES PREFIX "") -target_link_libraries(scard freerdp-utils) +if(WITH_MONOLITHIC_BUILD) + target_link_libraries(scard freerdp) +else() + target_link_libraries(scard freerdp-utils) +endif() + target_link_libraries(scard ${PCSC_LIBRARIES}) install(TARGETS scard DESTINATION ${FREERDP_PLUGIN_PATH}) diff --git a/channels/rdpdr/smartcard/scard_main.c b/channels/rdpdr/smartcard/scard_main.c index 475336375..216b8ad9b 100644 --- a/channels/rdpdr/smartcard/scard_main.c +++ b/channels/rdpdr/smartcard/scard_main.c @@ -1,25 +1,27 @@ -/* - FreeRDP: A Remote Desktop Protocol client. - Redirected Smart Card Device Service - - Copyright 2011 O.S. Systems Software Ltda. - Copyright 2011 Eduardo Fiss Beloni - Copyright 2011 Anthony Tong - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ +/** + * FreeRDP: A Remote Desktop Protocol client. + * Smartcard Device Service Virtual Channel + * + * Copyright 2011 O.S. Systems Software Ltda. + * Copyright 2011 Eduardo Fiss Beloni + * Copyright 2011 Anthony Tong + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +#ifdef HAVE_CONFIG_H #include "config.h" +#endif #include #include @@ -36,7 +38,6 @@ #include "scard_main.h" - static void scard_free(DEVICE* dev) { diff --git a/channels/rdpdr/smartcard/scard_main.h b/channels/rdpdr/smartcard/scard_main.h index 0d94ecc12..15445929b 100644 --- a/channels/rdpdr/smartcard/scard_main.h +++ b/channels/rdpdr/smartcard/scard_main.h @@ -1,22 +1,22 @@ -/* - FreeRDP: A Remote Desktop Protocol client. - Redirected Smart Card Device Service - - Copyright 2011 O.S. Systems Software Ltda. - Copyright 2011 Eduardo Fiss Beloni - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ +/** + * FreeRDP: A Remote Desktop Protocol client. + * Smartcard Device Service Virtual Channel + * + * Copyright 2011 O.S. Systems Software Ltda. + * Copyright 2011 Eduardo Fiss Beloni + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ #ifndef __SCARD_MAIN_H #define __SCARD_MAIN_H diff --git a/channels/rdpdr/smartcard/scard_operations.c b/channels/rdpdr/smartcard/scard_operations.c index b383cd448..fbf87f4b4 100644 --- a/channels/rdpdr/smartcard/scard_operations.c +++ b/channels/rdpdr/smartcard/scard_operations.c @@ -1,25 +1,27 @@ -/* - FreeRDP: A Remote Desktop Protocol client. - Redirected Smart Card Device Service - - Copyright (C) Alexi Volkov 2006 - Copyright 2011 O.S. Systems Software Ltda. - Copyright 2011 Anthony Tong - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ +/** + * FreeRDP: A Remote Desktop Protocol client. + * Smartcard Device Service Virtual Channel + * + * Copyright (C) Alexi Volkov 2006 + * Copyright 2011 O.S. Systems Software Ltda. + * Copyright 2011 Anthony Tong + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +#ifdef HAVE_CONFIG_H #include "config.h" +#endif #include #include diff --git a/channels/rdpsnd/CMakeLists.txt b/channels/rdpsnd/CMakeLists.txt index c7d6a7054..745358da0 100644 --- a/channels/rdpsnd/CMakeLists.txt +++ b/channels/rdpsnd/CMakeLists.txt @@ -19,13 +19,16 @@ set(RDPSND_SRCS rdpsnd_main.c - rdpsnd_main.h -) + rdpsnd_main.h) add_library(rdpsnd ${RDPSND_SRCS}) set_target_properties(rdpsnd PROPERTIES PREFIX "") -target_link_libraries(rdpsnd freerdp-utils) +if(WITH_MONOLITHIC_BUILD) + target_link_libraries(rdpsnd freerdp) +else() + target_link_libraries(rdpsnd freerdp-utils) +endif() install(TARGETS rdpsnd DESTINATION ${FREERDP_PLUGIN_PATH}) diff --git a/channels/rdpsnd/alsa/CMakeLists.txt b/channels/rdpsnd/alsa/CMakeLists.txt index 4d6deb43e..1dbe268cf 100644 --- a/channels/rdpsnd/alsa/CMakeLists.txt +++ b/channels/rdpsnd/alsa/CMakeLists.txt @@ -27,7 +27,12 @@ include_directories(${ALSA_INCLUDE_DIRS}) add_library(rdpsnd_alsa ${RDPSND_ALSA_SRCS}) set_target_properties(rdpsnd_alsa PROPERTIES PREFIX "") -target_link_libraries(rdpsnd_alsa freerdp-utils) +if(WITH_MONOLITHIC_BUILD) + target_link_libraries(rdpsnd_alsa freerdp) +else() + target_link_libraries(rdpsnd_alsa freerdp-utils) +endif() + target_link_libraries(rdpsnd_alsa ${ALSA_LIBRARIES}) install(TARGETS rdpsnd_alsa DESTINATION ${FREERDP_PLUGIN_PATH}) diff --git a/channels/rdpsnd/alsa/rdpsnd_alsa.c b/channels/rdpsnd/alsa/rdpsnd_alsa.c index 86426bf9c..19c3ecab6 100644 --- a/channels/rdpsnd/alsa/rdpsnd_alsa.c +++ b/channels/rdpsnd/alsa/rdpsnd_alsa.c @@ -18,10 +18,16 @@ * limitations under the License. */ +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + #include #include #include + #include + #include #include #include diff --git a/channels/rdpsnd/mac_audio/CMakeLists.txt b/channels/rdpsnd/mac_audio/CMakeLists.txt index 63cb82b95..45b50548c 100644 --- a/channels/rdpsnd/mac_audio/CMakeLists.txt +++ b/channels/rdpsnd/mac_audio/CMakeLists.txt @@ -19,8 +19,7 @@ # limitations under the License. set(RDPSND_MACAUDIO_SRCS - rdpsnd_audio_q.c -) + rdpsnd_audio_q.c) include_directories(..) include_directories(${MACAUDIO_INCLUDE_DIRS}) @@ -28,7 +27,12 @@ include_directories(${MACAUDIO_INCLUDE_DIRS}) add_library(rdpsnd_macaudio ${RDPSND_MACAUDIO_SRCS}) set_target_properties(rdpsnd_macaudio PROPERTIES PREFIX "") -target_link_libraries(rdpsnd_macaudio freerdp-utils) +if(WITH_MONOLITHIC_BUILD) + target_link_libraries(rdpsnd_macaudio freerdp) +else() + target_link_libraries(rdpsnd_macaudio freerdp-utils) +endif() + target_link_libraries(rdpsnd_macaudio ${MAC_AUDIOTOOLBOX_LIBRARY_PATH}) target_link_libraries(rdpsnd_macaudio ${MAC_COREFOUNDATION_LIBRARY_PATH}) diff --git a/channels/rdpsnd/mac_audio/rdpsnd_audio_q.c b/channels/rdpsnd/mac_audio/rdpsnd_audio_q.c index 4671af6ee..f089588d9 100644 --- a/channels/rdpsnd/mac_audio/rdpsnd_audio_q.c +++ b/channels/rdpsnd/mac_audio/rdpsnd_audio_q.c @@ -21,13 +21,19 @@ * Use AudioQueue to implement audio redirection */ +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + #include #include #include + #include #include #include #include + #include #include diff --git a/channels/rdpsnd/pulse/CMakeLists.txt b/channels/rdpsnd/pulse/CMakeLists.txt index 844ffde4f..5ff96249f 100644 --- a/channels/rdpsnd/pulse/CMakeLists.txt +++ b/channels/rdpsnd/pulse/CMakeLists.txt @@ -18,8 +18,7 @@ # limitations under the License. set(RDPSND_PULSE_SRCS - rdpsnd_pulse.c -) + rdpsnd_pulse.c) include_directories(..) include_directories(${PULSEAUDIO_INCLUDE_DIR}) @@ -27,7 +26,12 @@ include_directories(${PULSEAUDIO_INCLUDE_DIR}) add_library(rdpsnd_pulse ${RDPSND_PULSE_SRCS}) set_target_properties(rdpsnd_pulse PROPERTIES PREFIX "") -target_link_libraries(rdpsnd_pulse freerdp-utils) +if(WITH_MONOLITHIC_BUILD) + target_link_libraries(rdpsnd_pulse freerdp) +else() + target_link_libraries(rdpsnd_pulse freerdp-utils) +endif() + target_link_libraries(rdpsnd_pulse ${PULSEAUDIO_LIBRARY}) install(TARGETS rdpsnd_pulse DESTINATION ${FREERDP_PLUGIN_PATH}) diff --git a/channels/rdpsnd/pulse/rdpsnd_pulse.c b/channels/rdpsnd/pulse/rdpsnd_pulse.c index 0a1658f64..3fe645ba2 100644 --- a/channels/rdpsnd/pulse/rdpsnd_pulse.c +++ b/channels/rdpsnd/pulse/rdpsnd_pulse.c @@ -17,9 +17,14 @@ * limitations under the License. */ +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + #include #include #include + #include #include #include diff --git a/channels/rdpsnd/rdpsnd_main.c b/channels/rdpsnd/rdpsnd_main.c index b5088d6e7..6fa9d94f4 100644 --- a/channels/rdpsnd/rdpsnd_main.c +++ b/channels/rdpsnd/rdpsnd_main.c @@ -18,6 +18,10 @@ * limitations under the License. */ +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + #ifndef _WIN32 #include #endif @@ -25,6 +29,7 @@ #include #include #include + #include #include #include diff --git a/channels/skel/CMakeLists.txt b/channels/skel/CMakeLists.txt index 1bc5354ea..1c2943c8f 100644 --- a/channels/skel/CMakeLists.txt +++ b/channels/skel/CMakeLists.txt @@ -19,12 +19,15 @@ set(SKEL_SRCS skel_main.c - skel_main.h -) + skel_main.h) add_library(skel ${SKEL_SRCS}) set_target_properties(skel PROPERTIES PREFIX "") -target_link_libraries(skel freerdp-utils) +if(WITH_MONOLITHIC_BUILD) + target_link_libraries(skel freerdp) +else() + target_link_libraries(skel freerdp-utils) +endif() install(TARGETS skel DESTINATION ${FREERDP_PLUGIN_PATH}) diff --git a/channels/skel/skel_main.c b/channels/skel/skel_main.c index a8bf1a8b9..5fbd92611 100644 --- a/channels/skel/skel_main.c +++ b/channels/skel/skel_main.c @@ -18,6 +18,10 @@ * limitations under the License. */ +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + #ifndef _WIN32 #include #endif @@ -25,6 +29,7 @@ #include #include #include + #include #include #include diff --git a/client/DirectFB/CMakeLists.txt b/client/DirectFB/CMakeLists.txt index bf317d644..a9c076d2f 100644 --- a/client/DirectFB/CMakeLists.txt +++ b/client/DirectFB/CMakeLists.txt @@ -19,7 +19,7 @@ include_directories(${DIRECTFB_INCLUDE_DIRS}) -add_executable(dfreerdp +set(FREERDP_CLIENT_DIRECTFB_SRCS df_event.c df_event.h df_graphics.c @@ -27,11 +27,20 @@ add_executable(dfreerdp dfreerdp.c dfreerdp.h) -target_link_libraries(dfreerdp freerdp-core) -target_link_libraries(dfreerdp freerdp-gdi) -target_link_libraries(dfreerdp freerdp-locale) -target_link_libraries(dfreerdp freerdp-channels) -target_link_libraries(dfreerdp freerdp-utils) -target_link_libraries(dfreerdp ${DIRECTFB_LIBRARIES}) +add_executable(dfreerdp ${FREERDP_CLIENT_DIRECTFB_SRCS}) +set(FREERDP_CLIENT_DIRECTFB_LIBS ${DIRECTFB_LIBRARIES}) + +if(WITH_MONOLITHIC_BUILD) + set(FREERDP_CLIENT_DIRECTFB_LIBS ${FREERDP_CLIENT_DIRECTFB_LIBS} freerdp) +else() + set(FREERDP_CLIENT_DIRECTFB_LIBS ${FREERDP_CLIENT_DIRECTFB_LIBS} + freerdp-core + freerdp-gdi + freerdp-locale + freerdp-channels + freerdp-utils) +endif() + +target_link_libraries(dfreerdp ${FREERDP_CLIENT_DIRECTFB_LIBS}) install(TARGETS dfreerdp DESTINATION ${CMAKE_INSTALL_BINDIR}) diff --git a/client/Windows/CMakeLists.txt b/client/Windows/CMakeLists.txt index e239f206a..4b05882d5 100644 --- a/client/Windows/CMakeLists.txt +++ b/client/Windows/CMakeLists.txt @@ -1,9 +1,7 @@ # FreeRDP: A Remote Desktop Protocol Client # FreeRDP Windows cmake build script # -# Copyright 2011 O.S. Systems Software Ltda. -# Copyright 2011 Otavio Salvador -# Copyright 2011 Marc-Andre Moreau +# Copyright 2012 Marc-Andre Moreau # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -17,7 +15,7 @@ # See the License for the specific language governing permissions and # limitations under the License. -add_executable(wfreerdp WIN32 +set(FREERDP_CLIENT_WINDOWS_SRCS wf_gdi.c wf_gdi.h wf_event.c @@ -33,10 +31,18 @@ add_executable(wfreerdp WIN32 wfreerdp.c wfreerdp.h) -target_link_libraries(wfreerdp freerdp-core) -target_link_libraries(wfreerdp freerdp-gdi) -target_link_libraries(wfreerdp freerdp-utils) -target_link_libraries(wfreerdp freerdp-codec) -target_link_libraries(wfreerdp freerdp-channels) +add_executable(wfreerdp WIN32 ${FREERDP_CLIENT_WINDOWS_SRCS}) +if(WITH_MONOLITHIC_BUILD) + set(FREERDP_CLIENT_WINDOWS_LIBS ${FREERDP_CLIENT_WINDOWS_LIBS} freerdp) +else() + set(FREERDP_CLIENT_WINDOWS_LIBS ${FREERDP_CLIENT_WINDOWS_LIBS} + freerdp-core + freerdp-gdi + freerdp-codec + freerdp-channels + freerdp-utils) +endif() + +target_link_libraries(wfreerdp ${FREERDP_CLIENT_WINDOWS_LIBS}) install(TARGETS wfreerdp DESTINATION ${CMAKE_INSTALL_BINDIR}) diff --git a/client/Windows/wf_cliprdr.c b/client/Windows/wf_cliprdr.c index 5ce19004e..ca277bc2c 100644 --- a/client/Windows/wf_cliprdr.c +++ b/client/Windows/wf_cliprdr.c @@ -17,6 +17,10 @@ * limitations under the License. */ +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + #include #include #include diff --git a/client/Windows/wf_event.c b/client/Windows/wf_event.c index 89edbd0e1..bbdad59a3 100644 --- a/client/Windows/wf_event.c +++ b/client/Windows/wf_event.c @@ -19,8 +19,14 @@ * limitations under the License. */ +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + #include + #include + #include "wfreerdp.h" #include "wf_event.h" diff --git a/client/Windows/wf_gdi.c b/client/Windows/wf_gdi.c index 3ebe379f6..bcbe1c6ec 100644 --- a/client/Windows/wf_gdi.c +++ b/client/Windows/wf_gdi.c @@ -19,6 +19,10 @@ * limitations under the License. */ +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + #include #include #include diff --git a/client/Windows/wf_graphics.c b/client/Windows/wf_graphics.c index e6d2a7bba..17d0b85c5 100644 --- a/client/Windows/wf_graphics.c +++ b/client/Windows/wf_graphics.c @@ -17,6 +17,10 @@ * limitations under the License. */ +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + #include #include @@ -157,7 +161,7 @@ void wf_Bitmap_Paint(rdpContext* context, rdpBitmap* bitmap) } void wf_Bitmap_Decompress(rdpContext* context, rdpBitmap* bitmap, - uint8* data, int width, int height, int bpp, int length, boolean compressed) + uint8* data, int width, int height, int bpp, int length, boolean compressed, int codec_id) { uint16 size; diff --git a/client/Windows/wf_rail.c b/client/Windows/wf_rail.c index 6a831c9ba..4dac4a4fb 100644 --- a/client/Windows/wf_rail.c +++ b/client/Windows/wf_rail.c @@ -17,6 +17,10 @@ * limitations under the License. */ +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + #include #include #include diff --git a/client/Windows/wf_window.c b/client/Windows/wf_window.c index 670ddc1e0..9dfc91b6f 100644 --- a/client/Windows/wf_window.c +++ b/client/Windows/wf_window.c @@ -17,4 +17,8 @@ * limitations under the License. */ -#include "wf_window.h" \ No newline at end of file +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + +#include "wf_window.h" diff --git a/client/Windows/wfreerdp.c b/client/Windows/wfreerdp.c index e1a8741cd..2fe643dca 100644 --- a/client/Windows/wfreerdp.c +++ b/client/Windows/wfreerdp.c @@ -19,6 +19,10 @@ * limitations under the License. */ +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + #include #include diff --git a/client/X11/CMakeLists.txt b/client/X11/CMakeLists.txt index 77bc263e2..5ecd0fbaf 100644 --- a/client/X11/CMakeLists.txt +++ b/client/X11/CMakeLists.txt @@ -20,7 +20,7 @@ include(FindXmlto) include_directories(${X11_INCLUDE_DIRS}) -add_executable(xfreerdp +set(FREERDP_CLIENT_X11_SRCS xf_gdi.c xf_gdi.h xf_rail.c @@ -42,6 +42,12 @@ add_executable(xfreerdp xfreerdp.c xfreerdp.h) +add_executable(xfreerdp ${FREERDP_CLIENT_X11_SRCS}) + +set(FREERDP_CLIENT_X11_LIBS + ${X11_LIBRARIES} + ${CMAKE_DL_LIBS}) + if(WITH_MANPAGES) if(XMLTO_FOUND) add_custom_command(OUTPUT xfreerdp.1 @@ -61,38 +67,43 @@ find_suggested_package(Xinerama) if(WITH_XINERAMA) add_definitions(-DWITH_XINERAMA -DWITH_XEXT) include_directories(${XINERAMA_INCLUDE_DIRS}) - target_link_libraries(xfreerdp ${XINERAMA_LIBRARIES}) + set(FREERDP_CLIENT_X11_LIBS ${FREERDP_CLIENT_X11_LIBS} ${XINERAMA_LIBRARIES}) endif() find_suggested_package(Xext) if(WITH_XEXT) add_definitions(-DWITH_XEXT) include_directories(${XEXT_INCLUDE_DIRS}) - target_link_libraries(xfreerdp ${XEXT_LIBRARIES}) + set(FREERDP_CLIENT_X11_LIBS ${FREERDP_CLIENT_X11_LIBS} ${XEXT_LIBRARIES}) endif() find_suggested_package(Xcursor) if(WITH_XCURSOR) add_definitions(-DWITH_XCURSOR) include_directories(${XCURSOR_INCLUDE_DIRS}) - target_link_libraries(xfreerdp ${XCURSOR_LIBRARIES}) + set(FREERDP_CLIENT_X11_LIBS ${FREERDP_CLIENT_X11_LIBS} ${XCURSOR_LIBRARIES}) endif() find_suggested_package(Xv) if(WITH_XV) add_definitions(-DWITH_XV) include_directories(${XV_INCLUDE_DIRS}) - target_link_libraries(xfreerdp ${XV_LIBRARIES}) + set(FREERDP_CLIENT_X11_LIBS ${FREERDP_CLIENT_X11_LIBS} ${XV_LIBRARIES}) endif() include_directories(${CMAKE_SOURCE_DIR}/resources) -target_link_libraries(xfreerdp freerdp-core) -target_link_libraries(xfreerdp freerdp-gdi) -target_link_libraries(xfreerdp freerdp-locale) -target_link_libraries(xfreerdp freerdp-rail) -target_link_libraries(xfreerdp freerdp-channels) -target_link_libraries(xfreerdp freerdp-utils) -target_link_libraries(xfreerdp ${X11_LIBRARIES} ${CMAKE_DL_LIBS}) +if(WITH_MONOLITHIC_BUILD) + set(FREERDP_CLIENT_X11_LIBS ${FREERDP_CLIENT_X11_LIBS} freerdp) +else() + set(FREERDP_CLIENT_X11_LIBS ${FREERDP_CLIENT_X11_LIBS} + freerdp-core + freerdp-gdi + freerdp-locale + freerdp-rail + freerdp-channels + freerdp-utils) +endif() +target_link_libraries(xfreerdp ${FREERDP_CLIENT_X11_LIBS}) install(TARGETS xfreerdp DESTINATION ${CMAKE_INSTALL_BINDIR}) diff --git a/client/X11/xf_cliprdr.c b/client/X11/xf_cliprdr.c index 700a7d447..982fabab4 100644 --- a/client/X11/xf_cliprdr.c +++ b/client/X11/xf_cliprdr.c @@ -17,9 +17,14 @@ * limitations under the License. */ +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + #include #include #include + #include #include #include diff --git a/client/X11/xf_event.c b/client/X11/xf_event.c index c89ac4bfa..9a0e9b2d4 100644 --- a/client/X11/xf_event.c +++ b/client/X11/xf_event.c @@ -17,6 +17,10 @@ * limitations under the License. */ +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + #include #include diff --git a/client/X11/xf_gdi.c b/client/X11/xf_gdi.c index 539f5ffa2..462465e37 100644 --- a/client/X11/xf_gdi.c +++ b/client/X11/xf_gdi.c @@ -17,6 +17,10 @@ * limitations under the License. */ +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + #include #include diff --git a/client/X11/xf_graphics.c b/client/X11/xf_graphics.c index a97fc86d1..58c94e366 100644 --- a/client/X11/xf_graphics.c +++ b/client/X11/xf_graphics.c @@ -17,6 +17,10 @@ * limitations under the License. */ +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + #include #include diff --git a/client/X11/xf_keyboard.c b/client/X11/xf_keyboard.c index 771f40181..b9382d5cf 100644 --- a/client/X11/xf_keyboard.c +++ b/client/X11/xf_keyboard.c @@ -17,6 +17,10 @@ * limitations under the License. */ +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + #include #include #include diff --git a/client/X11/xf_monitor.c b/client/X11/xf_monitor.c index 8fdfcf3cb..14ce09ab5 100644 --- a/client/X11/xf_monitor.c +++ b/client/X11/xf_monitor.c @@ -17,6 +17,10 @@ * limitations under the License. */ +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + #include #include #include diff --git a/client/X11/xf_rail.c b/client/X11/xf_rail.c index 9546803ff..daeef3196 100644 --- a/client/X11/xf_rail.c +++ b/client/X11/xf_rail.c @@ -17,6 +17,10 @@ * limitations under the License. */ +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + #include #include @@ -41,14 +45,13 @@ void xf_rail_enable_remoteapp_mode(xfInfo* xfi) void xf_rail_disable_remoteapp_mode(xfInfo* xfi) { - if (xfi->remote_app == true) - { - xfi->remote_app = false; - xf_create_window(xfi); - } + if (xfi->remote_app == true) + { + xfi->remote_app = false; + xf_create_window(xfi); + } } - void xf_rail_paint(xfInfo* xfi, rdpRail* rail, sint32 uleft, sint32 utop, uint32 uright, uint32 ubottom) { xfWindow* xfw; diff --git a/client/X11/xf_tsmf.c b/client/X11/xf_tsmf.c index 7256aae4c..61e5e4382 100644 --- a/client/X11/xf_tsmf.c +++ b/client/X11/xf_tsmf.c @@ -17,15 +17,22 @@ * limitations under the License. */ +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + #include #include #include + #include #include + #include #include #include #include + #include #include #include diff --git a/client/X11/xf_window.c b/client/X11/xf_window.c index 9b05ee315..a2e2677ea 100644 --- a/client/X11/xf_window.c +++ b/client/X11/xf_window.c @@ -18,13 +18,18 @@ * limitations under the License. */ +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + #include #include #include + #include #include #include -#include + #include #include diff --git a/client/X11/xf_window.h b/client/X11/xf_window.h index 82b8ddb1c..f77795dbb 100644 --- a/client/X11/xf_window.h +++ b/client/X11/xf_window.h @@ -105,10 +105,12 @@ void xf_UpdateWindowArea(xfInfo* xfi, xfWindow* window, int x, int y, int width, boolean xf_IsWindowBorder(xfInfo* xfi, xfWindow* xfw, int x, int y); void xf_DestroyWindow(xfInfo* xfi, xfWindow* window); +boolean xf_GetWindowProperty(xfInfo* xfi, Window window, Atom property, int length, + unsigned long* nitems, unsigned long* bytes, uint8** prop); + void xf_SetWindowMinMaxInfo(xfInfo* xfi, xfWindow* window, int maxWidth, int maxHeight, int maxPosX, int maxPosY, int minTrackWidth, int minTrackHeight, int maxTrackWidth, int maxTrackHeight); - void xf_StartLocalMoveSize(xfInfo* xfi, xfWindow* window, int direction, int x, int y); void xf_EndLocalMoveSize(xfInfo *xfi, xfWindow *window); void xf_SendClientEvent(xfInfo *xfi, xfWindow* window, Atom atom, unsigned int numArgs, ...); diff --git a/client/X11/xfreerdp.c b/client/X11/xfreerdp.c index 8ea76c3e3..232d6e048 100644 --- a/client/X11/xfreerdp.c +++ b/client/X11/xfreerdp.c @@ -18,6 +18,10 @@ * limitations under the License. */ +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + #include #include @@ -40,6 +44,7 @@ #include #include #include + #include #include #include diff --git a/client/X11/xfreerdp.h b/client/X11/xfreerdp.h index 46fb1c8fb..1a2d673b4 100644 --- a/client/X11/xfreerdp.h +++ b/client/X11/xfreerdp.h @@ -20,7 +20,10 @@ #ifndef __XFREERDP_H #define __XFREERDP_H +#ifdef HAVE_CONFIG_H #include "config.h" +#endif + #include #include #include @@ -165,6 +168,7 @@ struct xf_info Atom WM_DELETE_WINDOW; }; +void xf_create_window(xfInfo* xfi); void xf_toggle_fullscreen(xfInfo* xfi); boolean xf_post_connect(freerdp* instance); diff --git a/client/test/CMakeLists.txt b/client/test/CMakeLists.txt index f07f72dc3..2ef51bef2 100644 --- a/client/test/CMakeLists.txt +++ b/client/test/CMakeLists.txt @@ -17,11 +17,21 @@ # See the License for the specific language governing permissions and # limitations under the License. -add_executable(freerdp-test +set(FREERDP_CLIENT_TEST_SRCS freerdp.c) -target_link_libraries(freerdp-test freerdp-core) -target_link_libraries(freerdp-test freerdp-gdi) -target_link_libraries(freerdp-test freerdp-utils) -target_link_libraries(freerdp-test freerdp-channels ${CMAKE_DL_LIBS}) +add_executable(freerdp-test ${FREERDP_CLIENT_TEST_SRCS}) +set(FREERDP_CLIENT_TEST_LIBS ${FREERDP_CLIENT_TEST_LIBS} ${CMAKE_DL_LIBS}) + +if(WITH_MONOLITHIC_BUILD) + set(FREERDP_CLIENT_TEST_LIBS ${FREERDP_CLIENT_TEST_LIBS} freerdp) +else() + set(FREERDP_CLIENT_TEST_LIBS ${FREERDP_CLIENT_TEST_LIBS} + freerdp-core + freerdp-gdi + freerdp-utils + freerdp-channels) +endif() + +target_link_libraries(freerdp-test ${FREERDP_CLIENT_TEST_LIBS}) diff --git a/client/test/freerdp.c b/client/test/freerdp.c index 31d0257b4..a301666ba 100644 --- a/client/test/freerdp.c +++ b/client/test/freerdp.c @@ -17,6 +17,10 @@ * limitations under the License. */ +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + #ifndef _WIN32 #include #include diff --git a/cmake/ConfigOptions.cmake b/cmake/ConfigOptions.cmake index 2c4df7b35..cc2afd95d 100644 --- a/cmake/ConfigOptions.cmake +++ b/cmake/ConfigOptions.cmake @@ -10,6 +10,14 @@ if(APPLE) option(WITH_CLANG "Build using clang" OFF) endif() +if(MSVC) + option(WITH_NATIVE_SSPI "Use native SSPI modules" ON) +endif() + +if(${CMAKE_VERSION} VERSION_GREATER 2.8.8) + option(WITH_MONOLITHIC_BUILD "Use monolithic build" OFF) +endif() + option(WITH_CLIENT "Build client binaries" ON) option(WITH_SERVER "Build server binaries" OFF) option(WITH_CHANNELS "Build virtual channel plugins" ON) diff --git a/config.h.in b/config.h.in index 83f16696f..8b6f2db61 100644 --- a/config.h.in +++ b/config.h.in @@ -19,6 +19,9 @@ #cmakedefine HAVE_STDINT_H #cmakedefine HAVE_STDBOOL_H #cmakedefine HAVE_INTTYPES_H +#cmakedefine HAVE_SYS_MODEM_H +#cmakedefine HAVE_SYS_FILIO_H +#cmakedefine HAVE_SYS_STRTIO_H #cmakedefine HAVE_TM_GMTOFF diff --git a/include/CMakeLists.txt b/include/CMakeLists.txt index aa5087487..ae8acdede 100644 --- a/include/CMakeLists.txt +++ b/include/CMakeLists.txt @@ -17,23 +17,18 @@ # See the License for the specific language governing permissions and # limitations under the License. -file(GLOB HEADERS "freerdp/*.h") -install_files(/include/freerdp FILES ${HEADERS}) +file(GLOB FREERDP_HEADERS "freerdp/*.h") +install(FILES ${FREERDP_HEADERS} DESTINATION include/freerdp) -install(DIRECTORY freerdp/utils DESTINATION include/freerdp FILES_MATCHING PATTERN "*.h") -install(DIRECTORY freerdp/channels DESTINATION include/freerdp FILES_MATCHING PATTERN "*.h") install(DIRECTORY freerdp/cache DESTINATION include/freerdp FILES_MATCHING PATTERN "*.h") -install(DIRECTORY freerdp/gdi DESTINATION include/freerdp FILES_MATCHING PATTERN "*.h") -install(DIRECTORY freerdp/rail DESTINATION include/freerdp FILES_MATCHING PATTERN "*.h") +install(DIRECTORY freerdp/channels DESTINATION include/freerdp FILES_MATCHING PATTERN "*.h") install(DIRECTORY freerdp/codec DESTINATION include/freerdp FILES_MATCHING PATTERN "*.h") -install(DIRECTORY freerdp/plugins DESTINATION include/freerdp FILES_MATCHING PATTERN "*.h") -install(DIRECTORY freerdp/locale DESTINATION include/freerdp FILES_MATCHING PATTERN "*.h") install(DIRECTORY freerdp/crypto DESTINATION include/freerdp FILES_MATCHING PATTERN "*.h") -install(DIRECTORY freerdp/auth DESTINATION include/freerdp FILES_MATCHING PATTERN "*.h") +install(DIRECTORY freerdp/gdi DESTINATION include/freerdp FILES_MATCHING PATTERN "*.h") +install(DIRECTORY freerdp/locale DESTINATION include/freerdp FILES_MATCHING PATTERN "*.h") +install(DIRECTORY freerdp/plugins DESTINATION include/freerdp FILES_MATCHING PATTERN "*.h") +install(DIRECTORY freerdp/rail DESTINATION include/freerdp FILES_MATCHING PATTERN "*.h") install(DIRECTORY freerdp/server DESTINATION include/freerdp FILES_MATCHING PATTERN "*.h") +install(DIRECTORY freerdp/utils DESTINATION include/freerdp FILES_MATCHING PATTERN "*.h") -file(GLOB HEADERS "winpr/*.h") -install_files(/include/winpr FILES ${HEADERS}) -file(GLOB HEADERS "${CMAKE_CURRENT_BINARY_DIR}/freerdp/*.h") -install_files(/include/freerdp FILES ${HEADERS}) diff --git a/libfreerdp/CMakeLists.txt b/libfreerdp/CMakeLists.txt new file mode 100644 index 000000000..20a46bc9b --- /dev/null +++ b/libfreerdp/CMakeLists.txt @@ -0,0 +1,50 @@ +# FreeRDP: A Remote Desktop Protocol Client +# libfreerdp cmake build script +# +# Copyright 2012 Marc-Andre Moreau +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +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) + +if(WITH_MONOLITHIC_BUILD) + add_library(freerdp + $ + $ + $ + $ + $ + $ + $ + $ + $) + + set_target_properties(freerdp PROPERTIES VERSION ${FREERDP_VERSION_FULL} SOVERSION ${FREERDP_VERSION} PREFIX "lib") + + target_link_libraries(freerdp ${FREERDP_LIBS}) + install(TARGETS freerdp DESTINATION ${CMAKE_INSTALL_LIBDIR}) +endif() + + diff --git a/libfreerdp-cache/CMakeLists.txt b/libfreerdp/cache/CMakeLists.txt similarity index 67% rename from libfreerdp-cache/CMakeLists.txt rename to libfreerdp/cache/CMakeLists.txt index 25e0b7727..940f9e409 100644 --- a/libfreerdp-cache/CMakeLists.txt +++ b/libfreerdp/cache/CMakeLists.txt @@ -27,11 +27,23 @@ set(FREERDP_CACHE_SRCS glyph.c cache.c) -add_library(freerdp-cache ${FREERDP_CACHE_SRCS}) +if(WITH_MONOLITHIC_BUILD) + add_library(freerdp-cache OBJECT ${FREERDP_CACHE_SRCS}) +else() + add_library(freerdp-cache ${FREERDP_CACHE_SRCS}) +endif() set_target_properties(freerdp-cache PROPERTIES VERSION ${FREERDP_VERSION_FULL} SOVERSION ${FREERDP_VERSION} PREFIX "lib") -target_link_libraries(freerdp-cache freerdp-core) -target_link_libraries(freerdp-cache freerdp-utils) +set(FREERDP_CACHE_LIBS) -install(TARGETS freerdp-cache DESTINATION ${CMAKE_INSTALL_LIBDIR}) +if(WITH_MONOLITHIC_BUILD) + set(FREERDP_LIBS ${FREERDP_LIBS} ${FREERDP_CACHE_LIBS} PARENT_SCOPE) +else() + set(FREERDP_CACHE_LIBS ${FREERDP_CACHE_LIBS} + freerdp-core + freerdp-utils) + + target_link_libraries(freerdp-cache ${FREERDP_CACHE_LIBS}) + install(TARGETS freerdp-cache DESTINATION ${CMAKE_INSTALL_LIBDIR}) +endif() diff --git a/libfreerdp-cache/bitmap.c b/libfreerdp/cache/bitmap.c similarity index 99% rename from libfreerdp-cache/bitmap.c rename to libfreerdp/cache/bitmap.c index a87e9b550..c361c4f88 100644 --- a/libfreerdp-cache/bitmap.c +++ b/libfreerdp/cache/bitmap.c @@ -17,6 +17,10 @@ * limitations under the License. */ +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + #include #include #include diff --git a/libfreerdp-cache/brush.c b/libfreerdp/cache/brush.c similarity index 99% rename from libfreerdp-cache/brush.c rename to libfreerdp/cache/brush.c index f07cd5a18..28ef07ef7 100644 --- a/libfreerdp-cache/brush.c +++ b/libfreerdp/cache/brush.c @@ -17,6 +17,10 @@ * limitations under the License. */ +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + #include #include #include diff --git a/libfreerdp-cache/cache.c b/libfreerdp/cache/cache.c similarity index 97% rename from libfreerdp-cache/cache.c rename to libfreerdp/cache/cache.c index a3462526a..19a5ae337 100644 --- a/libfreerdp-cache/cache.c +++ b/libfreerdp/cache/cache.c @@ -17,6 +17,10 @@ * limitations under the License. */ +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + #include #include diff --git a/libfreerdp-cache/glyph.c b/libfreerdp/cache/glyph.c similarity index 99% rename from libfreerdp-cache/glyph.c rename to libfreerdp/cache/glyph.c index fc3326631..ca0ca8931 100644 --- a/libfreerdp-cache/glyph.c +++ b/libfreerdp/cache/glyph.c @@ -17,6 +17,10 @@ * limitations under the License. */ +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + #include #include #include diff --git a/libfreerdp-cache/nine_grid.c b/libfreerdp/cache/nine_grid.c similarity index 98% rename from libfreerdp-cache/nine_grid.c rename to libfreerdp/cache/nine_grid.c index c0f05c67b..40bd9a3f8 100644 --- a/libfreerdp-cache/nine_grid.c +++ b/libfreerdp/cache/nine_grid.c @@ -17,6 +17,10 @@ * limitations under the License. */ +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + #include #include #include diff --git a/libfreerdp-cache/offscreen.c b/libfreerdp/cache/offscreen.c similarity index 98% rename from libfreerdp-cache/offscreen.c rename to libfreerdp/cache/offscreen.c index 526368a49..51ad5139b 100644 --- a/libfreerdp-cache/offscreen.c +++ b/libfreerdp/cache/offscreen.c @@ -17,6 +17,10 @@ * limitations under the License. */ +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + #include #include diff --git a/libfreerdp-cache/palette.c b/libfreerdp/cache/palette.c similarity index 97% rename from libfreerdp-cache/palette.c rename to libfreerdp/cache/palette.c index 62ffabe18..ca4576700 100644 --- a/libfreerdp-cache/palette.c +++ b/libfreerdp/cache/palette.c @@ -17,6 +17,10 @@ * limitations under the License. */ +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + #include #include diff --git a/libfreerdp-cache/pointer.c b/libfreerdp/cache/pointer.c similarity index 99% rename from libfreerdp-cache/pointer.c rename to libfreerdp/cache/pointer.c index e1409e701..dea91ebf5 100644 --- a/libfreerdp-cache/pointer.c +++ b/libfreerdp/cache/pointer.c @@ -17,6 +17,10 @@ * limitations under the License. */ +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + #include #include diff --git a/libfreerdp-channels/CMakeLists.txt b/libfreerdp/channels/CMakeLists.txt similarity index 66% rename from libfreerdp-channels/CMakeLists.txt rename to libfreerdp/channels/CMakeLists.txt index 56f2fa710..51cb08ba4 100644 --- a/libfreerdp-channels/CMakeLists.txt +++ b/libfreerdp/channels/CMakeLists.txt @@ -23,10 +23,22 @@ set(FREERDP_CHANNELS_SRCS wtsvc.c wtsvc.h) -add_library(freerdp-channels ${FREERDP_CHANNELS_SRCS}) +if(WITH_MONOLITHIC_BUILD) + add_library(freerdp-channels OBJECT ${FREERDP_CHANNELS_SRCS}) +else() + add_library(freerdp-channels ${FREERDP_CHANNELS_SRCS}) +endif() set_target_properties(freerdp-channels PROPERTIES VERSION ${FREERDP_VERSION_FULL} SOVERSION ${FREERDP_VERSION} PREFIX "lib") -target_link_libraries(freerdp-channels freerdp-utils) -install(TARGETS freerdp-channels DESTINATION ${CMAKE_INSTALL_LIBDIR}) +set(FREERDP_CHANNELS_LIBS) +if(WITH_MONOLITHIC_BUILD) + set(FREERDP_LIBS ${FREERDP_LIBS} ${FREERDP_CHANNELS_LIBS} PARENT_SCOPE) +else() + set(FREERDP_CHANNELS_LIBS ${FREERDP_CHANNELS_LIBS} + freerdp-utils) + + target_link_libraries(freerdp-channels ${FREERDP_CHANNELS_LIBS}) + install(TARGETS freerdp-channels DESTINATION ${CMAKE_INSTALL_LIBDIR}) +endif() diff --git a/libfreerdp-channels/libchannels.c b/libfreerdp/channels/libchannels.c similarity index 99% rename from libfreerdp-channels/libchannels.c rename to libfreerdp/channels/libchannels.c index c50196675..70ebc8049 100644 --- a/libfreerdp-channels/libchannels.c +++ b/libfreerdp/channels/libchannels.c @@ -32,10 +32,14 @@ * from the main thread. */ +#ifdef HAVE_CONFIG_H #include "config.h" +#endif + #include #include #include + #include #include #include diff --git a/libfreerdp-channels/libchannels.h b/libfreerdp/channels/libchannels.h similarity index 97% rename from libfreerdp-channels/libchannels.h rename to libfreerdp/channels/libchannels.h index ab116719e..f34bdeed8 100644 --- a/libfreerdp-channels/libchannels.h +++ b/libfreerdp/channels/libchannels.h @@ -21,7 +21,10 @@ #ifndef __LIBCHANNELS_H #define __LIBCHANNELS_H +#ifdef HAVE_CONFIG_H #include "config.h" +#endif + #include #ifdef WITH_DEBUG_CHANNELS diff --git a/libfreerdp-channels/wtsvc.c b/libfreerdp/channels/wtsvc.c similarity index 98% rename from libfreerdp-channels/wtsvc.c rename to libfreerdp/channels/wtsvc.c index 7d967f2c5..2fb9f3626 100644 --- a/libfreerdp-channels/wtsvc.c +++ b/libfreerdp/channels/wtsvc.c @@ -17,7 +17,10 @@ * limitations under the License. */ +#ifdef HAVE_CONFIG_H #include "config.h" +#endif + #include #include #include @@ -159,7 +162,7 @@ static void wts_read_drdynvc_data_first(rdpPeerChannel* channel, STREAM* s, int return; stream_set_pos(channel->receive_data, 0); - stream_check_size(channel->receive_data, channel->dvc_total_length); + stream_check_size(channel->receive_data, (int) channel->dvc_total_length); stream_write(channel->receive_data, stream_get_tail(s), length); } @@ -174,7 +177,7 @@ static void wts_read_drdynvc_data(rdpPeerChannel* channel, STREAM* s, uint32 len return; } stream_write(channel->receive_data, stream_get_tail(s), length); - if (stream_get_length(channel->receive_data) >= channel->dvc_total_length) + if (stream_get_length(channel->receive_data) >= (int) channel->dvc_total_length) { wts_queue_receive_data(channel, stream_get_head(channel->receive_data), channel->dvc_total_length); channel->dvc_total_length = 0; @@ -300,7 +303,7 @@ static void wts_write_drdynvc_create_request(STREAM *s, uint32 ChannelId, const wts_write_drdynvc_header(s, CREATE_REQUEST_PDU, ChannelId); len = strlen(ChannelName) + 1; - stream_check_size(s, len); + stream_check_size(s, (int) len); stream_write(s, ChannelName, len); } diff --git a/libfreerdp-channels/wtsvc.h b/libfreerdp/channels/wtsvc.h similarity index 100% rename from libfreerdp-channels/wtsvc.h rename to libfreerdp/channels/wtsvc.h diff --git a/libfreerdp-codec/CMakeLists.txt b/libfreerdp/codec/CMakeLists.txt similarity index 79% rename from libfreerdp-codec/CMakeLists.txt rename to libfreerdp/codec/CMakeLists.txt index 69194daf8..6a03e002e 100644 --- a/libfreerdp-codec/CMakeLists.txt +++ b/libfreerdp/codec/CMakeLists.txt @@ -77,9 +77,23 @@ if(WITH_JPEG) set(FREERDP_JPEG_LIBS jpeg) endif() -add_library(freerdp-codec ${FREERDP_CODEC_SRCS}) +if(WITH_MONOLITHIC_BUILD) + add_library(freerdp-codec OBJECT ${FREERDP_CODEC_SRCS}) +else() + add_library(freerdp-codec ${FREERDP_CODEC_SRCS}) +endif() set_target_properties(freerdp-codec PROPERTIES VERSION ${FREERDP_VERSION_FULL} SOVERSION ${FREERDP_VERSION} PREFIX "lib") -target_link_libraries(freerdp-codec freerdp-utils ${FREERDP_JPEG_LIBS}) -install(TARGETS freerdp-codec DESTINATION ${CMAKE_INSTALL_LIBDIR}) +set(FREERDP_CODEC_LIBS + ${FREERDP_JPEG_LIBS}) + +if(WITH_MONOLITHIC_BUILD) + set(FREERDP_LIBS ${FREERDP_LIBS} ${FREERDP_CODEC_LIBS} PARENT_SCOPE) +else() + set(FREERDP_CODEC_LIBS ${FREERDP_CODEC_LIBS} + freerdp-utils) + + target_link_libraries(freerdp-codec ${FREERDP_CODEC_LIBS}) + install(TARGETS freerdp-codec DESTINATION ${CMAKE_INSTALL_LIBDIR}) +endif() diff --git a/libfreerdp-codec/bitmap.c b/libfreerdp/codec/bitmap.c similarity index 99% rename from libfreerdp-codec/bitmap.c rename to libfreerdp/codec/bitmap.c index 635a583aa..31152b160 100644 --- a/libfreerdp-codec/bitmap.c +++ b/libfreerdp/codec/bitmap.c @@ -17,6 +17,10 @@ * limitations under the License. */ +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + #include #include #include diff --git a/libfreerdp-codec/color.c b/libfreerdp/codec/color.c similarity index 99% rename from libfreerdp-codec/color.c rename to libfreerdp/codec/color.c index a660d7717..82cd7adf8 100644 --- a/libfreerdp-codec/color.c +++ b/libfreerdp/codec/color.c @@ -17,9 +17,14 @@ * limitations under the License. */ +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + #include #include #include + #include #include #include diff --git a/libfreerdp-codec/include/bitmap.c b/libfreerdp/codec/include/bitmap.c similarity index 100% rename from libfreerdp-codec/include/bitmap.c rename to libfreerdp/codec/include/bitmap.c diff --git a/libfreerdp-codec/jpeg.c b/libfreerdp/codec/jpeg.c similarity index 99% rename from libfreerdp-codec/jpeg.c rename to libfreerdp/codec/jpeg.c index eec5eb614..70dbc08ea 100644 --- a/libfreerdp-codec/jpeg.c +++ b/libfreerdp/codec/jpeg.c @@ -17,7 +17,10 @@ * limitations under the License. */ +#ifdef HAVE_CONFIG_H #include "config.h" +#endif + #include #include #include diff --git a/libfreerdp-codec/mppc_dec.c b/libfreerdp/codec/mppc_dec.c similarity index 99% rename from libfreerdp-codec/mppc_dec.c rename to libfreerdp/codec/mppc_dec.c index 4122ca6eb..0a846af3f 100644 --- a/libfreerdp-codec/mppc_dec.c +++ b/libfreerdp/codec/mppc_dec.c @@ -18,6 +18,10 @@ * limitations under the License. */ +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + #include #include diff --git a/libfreerdp-codec/mppc_enc.c b/libfreerdp/codec/mppc_enc.c similarity index 99% rename from libfreerdp-codec/mppc_enc.c rename to libfreerdp/codec/mppc_enc.c index f2f21f90b..3efe88abe 100644 --- a/libfreerdp-codec/mppc_enc.c +++ b/libfreerdp/codec/mppc_enc.c @@ -18,6 +18,10 @@ * limitations under the License. */ +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + #include #include #include diff --git a/libfreerdp-codec/nsc.c b/libfreerdp/codec/nsc.c similarity index 99% rename from libfreerdp-codec/nsc.c rename to libfreerdp/codec/nsc.c index 69db2e2ac..ac74dcc0c 100644 --- a/libfreerdp-codec/nsc.c +++ b/libfreerdp/codec/nsc.c @@ -18,10 +18,15 @@ * limitations under the License. */ +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + #include #include #include #include + #include #include diff --git a/libfreerdp-codec/nsc_encode.c b/libfreerdp/codec/nsc_encode.c similarity index 99% rename from libfreerdp-codec/nsc_encode.c rename to libfreerdp/codec/nsc_encode.c index 78fb208ff..7feb4879a 100644 --- a/libfreerdp-codec/nsc_encode.c +++ b/libfreerdp/codec/nsc_encode.c @@ -17,10 +17,15 @@ * limitations under the License. */ +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + #include #include #include #include + #include #include diff --git a/libfreerdp-codec/nsc_encode.h b/libfreerdp/codec/nsc_encode.h similarity index 100% rename from libfreerdp-codec/nsc_encode.h rename to libfreerdp/codec/nsc_encode.h diff --git a/libfreerdp-codec/nsc_sse2.c b/libfreerdp/codec/nsc_sse2.c similarity index 99% rename from libfreerdp-codec/nsc_sse2.c rename to libfreerdp/codec/nsc_sse2.c index 1dc198228..04868b11e 100644 --- a/libfreerdp-codec/nsc_sse2.c +++ b/libfreerdp/codec/nsc_sse2.c @@ -17,9 +17,14 @@ * limitations under the License. */ +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + #include #include #include + #include #include diff --git a/libfreerdp-codec/nsc_sse2.h b/libfreerdp/codec/nsc_sse2.h similarity index 100% rename from libfreerdp-codec/nsc_sse2.h rename to libfreerdp/codec/nsc_sse2.h diff --git a/libfreerdp-codec/nsc_types.h b/libfreerdp/codec/nsc_types.h similarity index 97% rename from libfreerdp-codec/nsc_types.h rename to libfreerdp/codec/nsc_types.h index 96a5787ba..3982a9bfb 100644 --- a/libfreerdp-codec/nsc_types.h +++ b/libfreerdp/codec/nsc_types.h @@ -21,7 +21,10 @@ #ifndef __NSC_TYPES_H #define __NSC_TYPES_H +#ifdef HAVE_CONFIG_H #include "config.h" +#endif + #include #include diff --git a/libfreerdp-codec/rfx.c b/libfreerdp/codec/rfx.c similarity index 99% rename from libfreerdp-codec/rfx.c rename to libfreerdp/codec/rfx.c index 45ce680ae..1e7478356 100644 --- a/libfreerdp-codec/rfx.c +++ b/libfreerdp/codec/rfx.c @@ -17,10 +17,15 @@ * limitations under the License. */ +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + #include #include #include #include + #include #include #include diff --git a/libfreerdp-codec/rfx_bitstream.h b/libfreerdp/codec/rfx_bitstream.h similarity index 100% rename from libfreerdp-codec/rfx_bitstream.h rename to libfreerdp/codec/rfx_bitstream.h diff --git a/libfreerdp-codec/rfx_constants.h b/libfreerdp/codec/rfx_constants.h similarity index 100% rename from libfreerdp-codec/rfx_constants.h rename to libfreerdp/codec/rfx_constants.h diff --git a/libfreerdp-codec/rfx_decode.c b/libfreerdp/codec/rfx_decode.c similarity index 99% rename from libfreerdp-codec/rfx_decode.c rename to libfreerdp/codec/rfx_decode.c index 22cd4cd92..8a8f1de43 100644 --- a/libfreerdp-codec/rfx_decode.c +++ b/libfreerdp/codec/rfx_decode.c @@ -18,10 +18,16 @@ * limitations under the License. */ +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + #include #include #include + #include + #include "rfx_types.h" #include "rfx_rlgr.h" #include "rfx_differential.h" diff --git a/libfreerdp-codec/rfx_decode.h b/libfreerdp/codec/rfx_decode.h similarity index 100% rename from libfreerdp-codec/rfx_decode.h rename to libfreerdp/codec/rfx_decode.h diff --git a/libfreerdp-codec/rfx_differential.c b/libfreerdp/codec/rfx_differential.c similarity index 96% rename from libfreerdp-codec/rfx_differential.c rename to libfreerdp/codec/rfx_differential.c index 7a1d49e25..ba972b6ee 100644 --- a/libfreerdp-codec/rfx_differential.c +++ b/libfreerdp/codec/rfx_differential.c @@ -17,9 +17,14 @@ * limitations under the License. */ +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + #include #include #include + #include "rfx_differential.h" void rfx_differential_decode(sint16* buffer, int buffer_size) diff --git a/libfreerdp-codec/rfx_differential.h b/libfreerdp/codec/rfx_differential.h similarity index 100% rename from libfreerdp-codec/rfx_differential.h rename to libfreerdp/codec/rfx_differential.h diff --git a/libfreerdp-codec/rfx_dwt.c b/libfreerdp/codec/rfx_dwt.c similarity index 99% rename from libfreerdp-codec/rfx_dwt.c rename to libfreerdp/codec/rfx_dwt.c index e870b18a8..97df63bd7 100644 --- a/libfreerdp-codec/rfx_dwt.c +++ b/libfreerdp/codec/rfx_dwt.c @@ -17,6 +17,10 @@ * limitations under the License. */ +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + #include #include #include diff --git a/libfreerdp-codec/rfx_dwt.h b/libfreerdp/codec/rfx_dwt.h similarity index 100% rename from libfreerdp-codec/rfx_dwt.h rename to libfreerdp/codec/rfx_dwt.h diff --git a/libfreerdp-codec/rfx_encode.c b/libfreerdp/codec/rfx_encode.c similarity index 99% rename from libfreerdp-codec/rfx_encode.c rename to libfreerdp/codec/rfx_encode.c index 451188ed8..d454f1558 100644 --- a/libfreerdp-codec/rfx_encode.c +++ b/libfreerdp/codec/rfx_encode.c @@ -18,9 +18,14 @@ * limitations under the License. */ +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + #include #include #include + #include "rfx_types.h" #include "rfx_rlgr.h" #include "rfx_differential.h" diff --git a/libfreerdp-codec/rfx_encode.h b/libfreerdp/codec/rfx_encode.h similarity index 100% rename from libfreerdp-codec/rfx_encode.h rename to libfreerdp/codec/rfx_encode.h diff --git a/libfreerdp-codec/rfx_neon.c b/libfreerdp/codec/rfx_neon.c similarity index 99% rename from libfreerdp-codec/rfx_neon.c rename to libfreerdp/codec/rfx_neon.c index 5a57a2f4b..1cbd7b7b7 100644 --- a/libfreerdp-codec/rfx_neon.c +++ b/libfreerdp/codec/rfx_neon.c @@ -17,6 +17,10 @@ limitations under the License. */ +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + #if defined(__ARM_NEON__) #include diff --git a/libfreerdp-codec/rfx_neon.h b/libfreerdp/codec/rfx_neon.h similarity index 100% rename from libfreerdp-codec/rfx_neon.h rename to libfreerdp/codec/rfx_neon.h diff --git a/libfreerdp-codec/rfx_pool.c b/libfreerdp/codec/rfx_pool.c similarity index 97% rename from libfreerdp-codec/rfx_pool.c rename to libfreerdp/codec/rfx_pool.c index 12e703c01..47e6065b6 100644 --- a/libfreerdp-codec/rfx_pool.c +++ b/libfreerdp/codec/rfx_pool.c @@ -17,9 +17,14 @@ * limitations under the License. */ +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + #include #include #include + #include #include "rfx_pool.h" diff --git a/libfreerdp-codec/rfx_pool.h b/libfreerdp/codec/rfx_pool.h similarity index 100% rename from libfreerdp-codec/rfx_pool.h rename to libfreerdp/codec/rfx_pool.h diff --git a/libfreerdp-codec/rfx_quantization.c b/libfreerdp/codec/rfx_quantization.c similarity index 98% rename from libfreerdp-codec/rfx_quantization.c rename to libfreerdp/codec/rfx_quantization.c index 617818f34..81adb20f6 100644 --- a/libfreerdp-codec/rfx_quantization.c +++ b/libfreerdp/codec/rfx_quantization.c @@ -17,6 +17,10 @@ * limitations under the License. */ +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + #include "rfx_quantization.h" static void rfx_quantization_decode_block(sint16* buffer, int buffer_size, uint32 factor) diff --git a/libfreerdp-codec/rfx_quantization.h b/libfreerdp/codec/rfx_quantization.h similarity index 100% rename from libfreerdp-codec/rfx_quantization.h rename to libfreerdp/codec/rfx_quantization.h diff --git a/libfreerdp-codec/rfx_rlgr.c b/libfreerdp/codec/rfx_rlgr.c similarity index 99% rename from libfreerdp-codec/rfx_rlgr.c rename to libfreerdp/codec/rfx_rlgr.c index b20c89bdf..7e92c475d 100644 --- a/libfreerdp-codec/rfx_rlgr.c +++ b/libfreerdp/codec/rfx_rlgr.c @@ -22,10 +22,16 @@ * [MS-RDPRFX] 3.1.8.1.7.3 RLGR1/RLGR3 Pseudocode */ +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + #include #include #include + #include + #include "rfx_bitstream.h" #include "rfx_rlgr.h" diff --git a/libfreerdp-codec/rfx_rlgr.h b/libfreerdp/codec/rfx_rlgr.h similarity index 100% rename from libfreerdp-codec/rfx_rlgr.h rename to libfreerdp/codec/rfx_rlgr.h diff --git a/libfreerdp-codec/rfx_sse2.c b/libfreerdp/codec/rfx_sse2.c similarity index 99% rename from libfreerdp-codec/rfx_sse2.c rename to libfreerdp/codec/rfx_sse2.c index e3339952a..b9cc9fa04 100644 --- a/libfreerdp-codec/rfx_sse2.c +++ b/libfreerdp/codec/rfx_sse2.c @@ -18,9 +18,14 @@ * limitations under the License. */ +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + #include #include #include + #include #include diff --git a/libfreerdp-codec/rfx_sse2.h b/libfreerdp/codec/rfx_sse2.h similarity index 100% rename from libfreerdp-codec/rfx_sse2.h rename to libfreerdp/codec/rfx_sse2.h diff --git a/libfreerdp-codec/rfx_types.h b/libfreerdp/codec/rfx_types.h similarity index 98% rename from libfreerdp-codec/rfx_types.h rename to libfreerdp/codec/rfx_types.h index a18034ed0..dd3f739ef 100644 --- a/libfreerdp-codec/rfx_types.h +++ b/libfreerdp/codec/rfx_types.h @@ -20,7 +20,10 @@ #ifndef __RFX_TYPES_H #define __RFX_TYPES_H +#ifdef HAVE_CONFIG_H #include "config.h" +#endif + #include #include diff --git a/libfreerdp-core/CMakeLists.txt b/libfreerdp/core/CMakeLists.txt similarity index 63% rename from libfreerdp-core/CMakeLists.txt rename to libfreerdp/core/CMakeLists.txt index 325d35669..45661ed22 100644 --- a/libfreerdp-core/CMakeLists.txt +++ b/libfreerdp/core/CMakeLists.txt @@ -3,7 +3,7 @@ # # Copyright 2011 O.S. Systems Software Ltda. # Copyright 2011 Otavio Salvador -# Copyright 2011 Marc-Andre Moreau +# Copyright 2012 Marc-Andre Moreau # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -22,7 +22,7 @@ add_definitions(-DEXT_PATH="${FREERDP_EXTENSION_PATH}") include_directories(${OPENSSL_INCLUDE_DIR}) include_directories(${ZLIB_INCLUDE_DIRS}) -set(LIBFREERDP_CORE_SRCS +set(FREERDP_CORE_SRCS activation.c activation.h extension.c @@ -89,33 +89,46 @@ set(LIBFREERDP_CORE_SRCS listener.c listener.h peer.c - peer.h -) + peer.h) -add_library(freerdp-core ${LIBFREERDP_CORE_SRCS}) +if(WITH_MONOLITHIC_BUILD) + add_library(freerdp-core OBJECT ${FREERDP_CORE_SRCS}) +else() + add_library(freerdp-core ${FREERDP_CORE_SRCS}) +endif() set_target_properties(freerdp-core PROPERTIES VERSION ${FREERDP_VERSION_FULL} SOVERSION ${FREERDP_VERSION} PREFIX "lib") -if(WIN32) - target_link_libraries(freerdp-core ws2_32) +if(WITH_MONOLITHIC_BUILD) + set(FREERDP_CORE_LIBS winpr) else() - target_link_libraries(freerdp-core ${ZLIB_LIBRARIES}) + set(FREERDP_CORE_LIBS + winpr-utils + winpr-rpc + winpr-sspi) + + if(NOT WIN32) + set(FREERDP_CORE_LIBS ${FREERDP_CORE_LIBS} winpr-registry) + endif() endif() -target_link_libraries(freerdp-core freerdp-utils) -target_link_libraries(freerdp-core freerdp-codec) -target_link_libraries(freerdp-core freerdp-locale) - -target_link_libraries(freerdp-core winpr-utils) -target_link_libraries(freerdp-core winpr-rpc) -target_link_libraries(freerdp-core winpr-sspi) - -if(NOT WIN32) - target_link_libraries(freerdp-core winpr-registry) +if(WIN32) + set(FREERDP_CORE_LIBS ${FREERDP_CORE_LIBS} ws2_32) +else() + set(FREERDP_CORE_LIBS ${FREERDP_CORE_LIBS} ${ZLIB_LIBRARIES}) endif() -target_link_libraries(freerdp-core freerdp-crypto) -target_link_libraries(freerdp-core ${OPENSSL_LIBRARIES}) - -install(TARGETS freerdp-core DESTINATION ${CMAKE_INSTALL_LIBDIR}) +set(FREERDP_CORE_LIBS ${FREERDP_CORE_LIBS} ${OPENSSL_LIBRARIES}) +if(WITH_MONOLITHIC_BUILD) + set(FREERDP_LIBS ${FREERDP_LIBS} ${FREERDP_CORE_LIBS} PARENT_SCOPE) +else() + set(FREERDP_CORE_LIBS ${FREERDP_CORE_LIBS} + freerdp-utils + freerdp-codec + freerdp-crypto + freerdp-locale) + + target_link_libraries(freerdp-core ${FREERDP_CORE_LIBS}) + install(TARGETS freerdp-core DESTINATION ${CMAKE_INSTALL_LIBDIR}) +endif() diff --git a/libfreerdp-core/activation.c b/libfreerdp/core/activation.c similarity index 99% rename from libfreerdp-core/activation.c rename to libfreerdp/core/activation.c index f93e75d10..8551bf8fd 100644 --- a/libfreerdp-core/activation.c +++ b/libfreerdp/core/activation.c @@ -17,6 +17,10 @@ * limitations under the License. */ +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + #include "activation.h" /* diff --git a/libfreerdp-core/activation.h b/libfreerdp/core/activation.h similarity index 100% rename from libfreerdp-core/activation.h rename to libfreerdp/core/activation.h diff --git a/libfreerdp-core/capabilities.c b/libfreerdp/core/capabilities.c similarity index 99% rename from libfreerdp-core/capabilities.c rename to libfreerdp/core/capabilities.c index 85480f02c..7c5ed657c 100644 --- a/libfreerdp-core/capabilities.c +++ b/libfreerdp/core/capabilities.c @@ -17,6 +17,10 @@ * limitations under the License. */ +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + #include "capabilities.h" /* @@ -1671,10 +1675,12 @@ void rdp_write_bitmap_cache_v3_codec_id_capability_set(STREAM* s, rdpSettings* s void rdp_write_frame_acknowledge_capability_set(STREAM* s, rdpSettings* settings) { uint8* header; + uint32 frame_acknowledge; header = rdp_capability_set_start(s); - stream_write_uint32(s, settings->frame_acknowledge); /* (4 bytes) */ + frame_acknowledge = settings->frame_acknowledge; + stream_write_uint32(s, frame_acknowledge); /* (4 bytes) */ rdp_capability_set_finish(s, header, CAPSET_TYPE_FRAME_ACKNOWLEDGE); } diff --git a/libfreerdp-core/capabilities.h b/libfreerdp/core/capabilities.h similarity index 100% rename from libfreerdp-core/capabilities.h rename to libfreerdp/core/capabilities.h diff --git a/libfreerdp-core/certificate.c b/libfreerdp/core/certificate.c similarity index 99% rename from libfreerdp-core/certificate.c rename to libfreerdp/core/certificate.c index b08da6f88..75cf1088a 100644 --- a/libfreerdp-core/certificate.c +++ b/libfreerdp/core/certificate.c @@ -18,6 +18,10 @@ * limitations under the License. */ +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + #include #include #include diff --git a/libfreerdp-core/certificate.h b/libfreerdp/core/certificate.h similarity index 100% rename from libfreerdp-core/certificate.h rename to libfreerdp/core/certificate.h diff --git a/libfreerdp-core/channel.c b/libfreerdp/core/channel.c similarity index 98% rename from libfreerdp-core/channel.c rename to libfreerdp/core/channel.c index e92a0a80c..824c9768d 100644 --- a/libfreerdp-core/channel.c +++ b/libfreerdp/core/channel.c @@ -17,9 +17,14 @@ * limitations under the License. */ +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + #include #include #include + #include #include #include diff --git a/libfreerdp-core/channel.h b/libfreerdp/core/channel.h similarity index 100% rename from libfreerdp-core/channel.h rename to libfreerdp/core/channel.h diff --git a/libfreerdp-core/connection.c b/libfreerdp/core/connection.c similarity index 99% rename from libfreerdp-core/connection.c rename to libfreerdp/core/connection.c index b408992a0..d3ab2be59 100644 --- a/libfreerdp-core/connection.c +++ b/libfreerdp/core/connection.c @@ -17,6 +17,10 @@ * limitations under the License. */ +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + #include "info.h" #include "input.h" diff --git a/libfreerdp-core/connection.h b/libfreerdp/core/connection.h similarity index 100% rename from libfreerdp-core/connection.h rename to libfreerdp/core/connection.h diff --git a/libfreerdp-core/errinfo.c b/libfreerdp/core/errinfo.c similarity index 99% rename from libfreerdp-core/errinfo.c rename to libfreerdp/core/errinfo.c index 48b1ef228..d2f255d37 100644 --- a/libfreerdp-core/errinfo.c +++ b/libfreerdp/core/errinfo.c @@ -17,6 +17,10 @@ * limitations under the License. */ +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + #include "errinfo.h" int connectErrorCode; diff --git a/libfreerdp-core/errinfo.h b/libfreerdp/core/errinfo.h similarity index 100% rename from libfreerdp-core/errinfo.h rename to libfreerdp/core/errinfo.h diff --git a/libfreerdp-core/extension.c b/libfreerdp/core/extension.c similarity index 99% rename from libfreerdp-core/extension.c rename to libfreerdp/core/extension.c index bcc33b282..2d79c24e4 100644 --- a/libfreerdp-core/extension.c +++ b/libfreerdp/core/extension.c @@ -18,9 +18,14 @@ * limitations under the License. */ +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + #include #include #include + #include #include #include diff --git a/libfreerdp-core/extension.h b/libfreerdp/core/extension.h similarity index 100% rename from libfreerdp-core/extension.h rename to libfreerdp/core/extension.h diff --git a/libfreerdp-core/fastpath.c b/libfreerdp/core/fastpath.c similarity index 99% rename from libfreerdp-core/fastpath.c rename to libfreerdp/core/fastpath.c index c77789894..b55d62545 100644 --- a/libfreerdp-core/fastpath.c +++ b/libfreerdp/core/fastpath.c @@ -17,9 +17,14 @@ * limitations under the License. */ +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + #include #include #include + #include #include #include diff --git a/libfreerdp-core/fastpath.h b/libfreerdp/core/fastpath.h similarity index 100% rename from libfreerdp-core/fastpath.h rename to libfreerdp/core/fastpath.h diff --git a/libfreerdp-core/freerdp.c b/libfreerdp/core/freerdp.c similarity index 99% rename from libfreerdp-core/freerdp.c rename to libfreerdp/core/freerdp.c index 40184fb7e..8c77fc01d 100644 --- a/libfreerdp-core/freerdp.c +++ b/libfreerdp/core/freerdp.c @@ -17,6 +17,10 @@ * limitations under the License. */ +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + #include "rdp.h" #include "input.h" #include "update.h" diff --git a/libfreerdp-core/gcc.c b/libfreerdp/core/gcc.c similarity index 99% rename from libfreerdp-core/gcc.c rename to libfreerdp/core/gcc.c index 60033e993..e751a263a 100644 --- a/libfreerdp-core/gcc.c +++ b/libfreerdp/core/gcc.c @@ -17,6 +17,10 @@ * limitations under the License. */ +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + #include #include "gcc.h" diff --git a/libfreerdp-core/gcc.h b/libfreerdp/core/gcc.h similarity index 100% rename from libfreerdp-core/gcc.h rename to libfreerdp/core/gcc.h diff --git a/libfreerdp-core/graphics.c b/libfreerdp/core/graphics.c similarity index 99% rename from libfreerdp-core/graphics.c rename to libfreerdp/core/graphics.c index f62c20682..2d7105d0d 100644 --- a/libfreerdp-core/graphics.c +++ b/libfreerdp/core/graphics.c @@ -17,6 +17,10 @@ * limitations under the License. */ +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + #include #include diff --git a/libfreerdp-core/http.c b/libfreerdp/core/http.c similarity index 99% rename from libfreerdp-core/http.c rename to libfreerdp/core/http.c index 88ad973e3..caee0da51 100644 --- a/libfreerdp-core/http.c +++ b/libfreerdp/core/http.c @@ -17,6 +17,10 @@ * limitations under the License. */ +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + #include #include "http.h" diff --git a/libfreerdp-core/http.h b/libfreerdp/core/http.h similarity index 100% rename from libfreerdp-core/http.h rename to libfreerdp/core/http.h diff --git a/libfreerdp-core/info.c b/libfreerdp/core/info.c similarity index 99% rename from libfreerdp-core/info.c rename to libfreerdp/core/info.c index d4cf8a0b9..e5a9d381d 100644 --- a/libfreerdp-core/info.c +++ b/libfreerdp/core/info.c @@ -17,6 +17,10 @@ * limitations under the License. */ +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + #include "timezone.h" #include "info.h" diff --git a/libfreerdp-core/info.h b/libfreerdp/core/info.h similarity index 100% rename from libfreerdp-core/info.h rename to libfreerdp/core/info.h diff --git a/libfreerdp-core/input.c b/libfreerdp/core/input.c similarity index 99% rename from libfreerdp-core/input.c rename to libfreerdp/core/input.c index eb946b25a..8e5185dec 100644 --- a/libfreerdp-core/input.c +++ b/libfreerdp/core/input.c @@ -17,6 +17,10 @@ * limitations under the License. */ +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + #include #include "input.h" diff --git a/libfreerdp-core/input.h b/libfreerdp/core/input.h similarity index 100% rename from libfreerdp-core/input.h rename to libfreerdp/core/input.h diff --git a/libfreerdp-core/license.c b/libfreerdp/core/license.c similarity index 99% rename from libfreerdp-core/license.c rename to libfreerdp/core/license.c index 5f5a555ba..3090b048c 100644 --- a/libfreerdp-core/license.c +++ b/libfreerdp/core/license.c @@ -17,6 +17,10 @@ * limitations under the License. */ +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + #include "redirection.h" #include "certificate.h" diff --git a/libfreerdp-core/license.h b/libfreerdp/core/license.h similarity index 100% rename from libfreerdp-core/license.h rename to libfreerdp/core/license.h diff --git a/libfreerdp-core/listener.c b/libfreerdp/core/listener.c similarity index 99% rename from libfreerdp-core/listener.c rename to libfreerdp/core/listener.c index 4d2f109bc..42a95f5d5 100644 --- a/libfreerdp-core/listener.c +++ b/libfreerdp/core/listener.c @@ -17,10 +17,15 @@ * limitations under the License. */ +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + #include #include #include #include + #include #ifndef _WIN32 diff --git a/libfreerdp-core/listener.h b/libfreerdp/core/listener.h similarity index 100% rename from libfreerdp-core/listener.h rename to libfreerdp/core/listener.h diff --git a/libfreerdp-core/mcs.c b/libfreerdp/core/mcs.c similarity index 99% rename from libfreerdp-core/mcs.c rename to libfreerdp/core/mcs.c index 5b927d1ae..0d6a5dda2 100644 --- a/libfreerdp-core/mcs.c +++ b/libfreerdp/core/mcs.c @@ -17,6 +17,10 @@ * limitations under the License. */ +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + #include "gcc.h" #include "mcs.h" diff --git a/libfreerdp-core/mcs.h b/libfreerdp/core/mcs.h similarity index 100% rename from libfreerdp-core/mcs.h rename to libfreerdp/core/mcs.h diff --git a/libfreerdp-core/nego.c b/libfreerdp/core/nego.c similarity index 99% rename from libfreerdp-core/nego.c rename to libfreerdp/core/nego.c index e6d31bfd9..6cb114fd9 100644 --- a/libfreerdp-core/nego.c +++ b/libfreerdp/core/nego.c @@ -17,6 +17,10 @@ * limitations under the License. */ +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + #include #include diff --git a/libfreerdp-core/nego.h b/libfreerdp/core/nego.h similarity index 100% rename from libfreerdp-core/nego.h rename to libfreerdp/core/nego.h diff --git a/libfreerdp-core/orders.c b/libfreerdp/core/orders.c similarity index 99% rename from libfreerdp-core/orders.c rename to libfreerdp/core/orders.c index 6c3380531..7256f2500 100644 --- a/libfreerdp-core/orders.c +++ b/libfreerdp/core/orders.c @@ -17,6 +17,10 @@ * limitations under the License. */ +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + #include "window.h" #include #include diff --git a/libfreerdp-core/orders.h b/libfreerdp/core/orders.h similarity index 100% rename from libfreerdp-core/orders.h rename to libfreerdp/core/orders.h diff --git a/libfreerdp-core/peer.c b/libfreerdp/core/peer.c similarity index 99% rename from libfreerdp-core/peer.c rename to libfreerdp/core/peer.c index c33ff2bc4..353275e26 100644 --- a/libfreerdp-core/peer.c +++ b/libfreerdp/core/peer.c @@ -17,6 +17,10 @@ * limitations under the License. */ +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + #include "certificate.h" #include diff --git a/libfreerdp-core/peer.h b/libfreerdp/core/peer.h similarity index 100% rename from libfreerdp-core/peer.h rename to libfreerdp/core/peer.h diff --git a/libfreerdp-core/rdp.c b/libfreerdp/core/rdp.c similarity index 99% rename from libfreerdp-core/rdp.c rename to libfreerdp/core/rdp.c index f3b71625d..ad5c99f22 100644 --- a/libfreerdp-core/rdp.c +++ b/libfreerdp/core/rdp.c @@ -17,6 +17,10 @@ * limitations under the License. */ +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + #include "rdp.h" #include "info.h" diff --git a/libfreerdp-core/rdp.h b/libfreerdp/core/rdp.h similarity index 99% rename from libfreerdp-core/rdp.h rename to libfreerdp/core/rdp.h index 16d779466..b327f8bce 100644 --- a/libfreerdp-core/rdp.h +++ b/libfreerdp/core/rdp.h @@ -20,7 +20,10 @@ #ifndef __RDP_H #define __RDP_H +#ifdef HAVE_CONFIG_H #include "config.h" +#endif + #include "mcs.h" #include "tpkt.h" #include "fastpath.h" diff --git a/libfreerdp-core/redirection.c b/libfreerdp/core/redirection.c similarity index 99% rename from libfreerdp-core/redirection.c rename to libfreerdp/core/redirection.c index 1139699d9..8fe1f7659 100644 --- a/libfreerdp-core/redirection.c +++ b/libfreerdp/core/redirection.c @@ -17,6 +17,10 @@ * limitations under the License. */ +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + #include "connection.h" #include "redirection.h" diff --git a/libfreerdp-core/redirection.h b/libfreerdp/core/redirection.h similarity index 100% rename from libfreerdp-core/redirection.h rename to libfreerdp/core/redirection.h diff --git a/libfreerdp-core/rpc.c b/libfreerdp/core/rpc.c similarity index 99% rename from libfreerdp-core/rpc.c rename to libfreerdp/core/rpc.c index 874667488..c2080a874 100644 --- a/libfreerdp-core/rpc.c +++ b/libfreerdp/core/rpc.c @@ -18,7 +18,10 @@ * limitations under the License. */ +#ifdef HAVE_CONFIG_H #include "config.h" +#endif + #include #include #include diff --git a/libfreerdp-core/rpc.h b/libfreerdp/core/rpc.h similarity index 100% rename from libfreerdp-core/rpc.h rename to libfreerdp/core/rpc.h diff --git a/libfreerdp-core/rts.c b/libfreerdp/core/rts.c similarity index 99% rename from libfreerdp-core/rts.c rename to libfreerdp/core/rts.c index a1032ab26..f14fd66f3 100644 --- a/libfreerdp-core/rts.c +++ b/libfreerdp/core/rts.c @@ -17,6 +17,10 @@ * limitations under the License. */ +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + #include "rts.h" /** diff --git a/libfreerdp-core/rts.h b/libfreerdp/core/rts.h similarity index 99% rename from libfreerdp-core/rts.h rename to libfreerdp/core/rts.h index b7ce7ae2b..449c0e2b3 100644 --- a/libfreerdp-core/rts.h +++ b/libfreerdp/core/rts.h @@ -22,7 +22,9 @@ #include "rpc.h" +#ifdef HAVE_CONFIG_H #include "config.h" +#endif #include #include diff --git a/libfreerdp-core/security.c b/libfreerdp/core/security.c similarity index 99% rename from libfreerdp-core/security.c rename to libfreerdp/core/security.c index 9571f0011..0ce305e9f 100644 --- a/libfreerdp-core/security.c +++ b/libfreerdp/core/security.c @@ -17,6 +17,10 @@ * limitations under the License. */ +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + #include "security.h" /* 0x36 repeated 40 times */ diff --git a/libfreerdp-core/security.h b/libfreerdp/core/security.h similarity index 100% rename from libfreerdp-core/security.h rename to libfreerdp/core/security.h diff --git a/libfreerdp-core/settings.c b/libfreerdp/core/settings.c similarity index 99% rename from libfreerdp-core/settings.c rename to libfreerdp/core/settings.c index 071398fcc..4f38d5973 100644 --- a/libfreerdp-core/settings.c +++ b/libfreerdp/core/settings.c @@ -17,9 +17,13 @@ * limitations under the License. */ +#ifdef HAVE_CONFIG_H #include "config.h" +#endif + #include "certificate.h" #include "capabilities.h" + #include #ifdef HAVE_UNISTD_H diff --git a/libfreerdp-core/surface.c b/libfreerdp/core/surface.c similarity index 98% rename from libfreerdp-core/surface.c rename to libfreerdp/core/surface.c index 32b62cbd6..0826f26e6 100644 --- a/libfreerdp-core/surface.c +++ b/libfreerdp/core/surface.c @@ -17,6 +17,10 @@ * limitations under the License. */ +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + #include #include "surface.h" diff --git a/libfreerdp-core/surface.h b/libfreerdp/core/surface.h similarity index 100% rename from libfreerdp-core/surface.h rename to libfreerdp/core/surface.h diff --git a/libfreerdp-core/tcp.c b/libfreerdp/core/tcp.c similarity index 99% rename from libfreerdp-core/tcp.c rename to libfreerdp/core/tcp.c index 7a40175eb..49b6f80b5 100644 --- a/libfreerdp-core/tcp.c +++ b/libfreerdp/core/tcp.c @@ -18,6 +18,10 @@ * limitations under the License. */ +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + #include #include #include diff --git a/libfreerdp-core/tcp.h b/libfreerdp/core/tcp.h similarity index 100% rename from libfreerdp-core/tcp.h rename to libfreerdp/core/tcp.h diff --git a/libfreerdp-core/timezone.c b/libfreerdp/core/timezone.c similarity index 97% rename from libfreerdp-core/timezone.c rename to libfreerdp/core/timezone.c index 9a4c7d566..071a59735 100644 --- a/libfreerdp-core/timezone.c +++ b/libfreerdp/core/timezone.c @@ -17,6 +17,10 @@ * limitations under the License. */ +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + #include "timezone.h" /** @@ -142,8 +146,12 @@ void rdp_write_client_time_zone(STREAM* s, rdpSettings* settings) * Though MS-RDPBCGR specifies bias as unsigned, two's complement * (a negative integer) works fine for zones east of UTC. */ - if (clientTimeZone->bias <= 720) bias = -(clientTimeZone->bias); - else bias = 1440 - clientTimeZone->bias; + + if (clientTimeZone->bias <= 720) + bias = -1 * clientTimeZone->bias; + else + bias = 1440 - clientTimeZone->bias; + stream_write_uint32(s, bias); /* Bias */ /* standardName (64 bytes) */ @@ -155,10 +163,12 @@ void rdp_write_client_time_zone(STREAM* s, rdpSettings* settings) bias, clientTimeZone->standardName, clientTimeZone->daylightName); sbias = clientTimeZone->standardBias - clientTimeZone->bias; + if (sbias < 0) bias2c = (uint32) sbias; else bias2c = ~((uint32) sbias) + 1; + /* Note that StandardBias is ignored if no valid standardDate is provided. */ stream_write_uint32(s, bias2c); /* StandardBias */ DEBUG_TIMEZONE("StandardBias=%d", bias2c); @@ -170,10 +180,12 @@ void rdp_write_client_time_zone(STREAM* s, rdpSettings* settings) rdp_write_system_time(s, &clientTimeZone->daylightDate); /* DaylightDate */ sbias = clientTimeZone->daylightBias - clientTimeZone->bias; + if (sbias < 0) bias2c = (uint32) sbias; else bias2c = ~((uint32) sbias) + 1; + /* Note that DaylightBias is ignored if no valid daylightDate is provided. */ stream_write_uint32(s, bias2c); /* DaylightBias */ DEBUG_TIMEZONE("DaylightBias=%d", bias2c); diff --git a/libfreerdp-core/timezone.h b/libfreerdp/core/timezone.h similarity index 98% rename from libfreerdp-core/timezone.h rename to libfreerdp/core/timezone.h index 17b1f70ad..79ef076fc 100644 --- a/libfreerdp-core/timezone.h +++ b/libfreerdp/core/timezone.h @@ -21,7 +21,10 @@ #define __TIMEZONE_H #include "rdp.h" + +#ifdef HAVE_CONFIG_H #include "config.h" +#endif #include #include diff --git a/libfreerdp-core/tpdu.c b/libfreerdp/core/tpdu.c similarity index 98% rename from libfreerdp-core/tpdu.c rename to libfreerdp/core/tpdu.c index c1e0ffac3..8a3002123 100644 --- a/libfreerdp-core/tpdu.c +++ b/libfreerdp/core/tpdu.c @@ -17,6 +17,10 @@ * limitations under the License. */ +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + #include #include "tpdu.h" diff --git a/libfreerdp-core/tpdu.h b/libfreerdp/core/tpdu.h similarity index 100% rename from libfreerdp-core/tpdu.h rename to libfreerdp/core/tpdu.h diff --git a/libfreerdp-core/tpkt.c b/libfreerdp/core/tpkt.c similarity index 98% rename from libfreerdp-core/tpkt.c rename to libfreerdp/core/tpkt.c index 449a2aecf..6f5e287aa 100644 --- a/libfreerdp-core/tpkt.c +++ b/libfreerdp/core/tpkt.c @@ -17,6 +17,10 @@ * limitations under the License. */ +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + #include "tpdu.h" #include "tpkt.h" diff --git a/libfreerdp-core/tpkt.h b/libfreerdp/core/tpkt.h similarity index 100% rename from libfreerdp-core/tpkt.h rename to libfreerdp/core/tpkt.h diff --git a/libfreerdp-core/transport.c b/libfreerdp/core/transport.c similarity index 99% rename from libfreerdp-core/transport.c rename to libfreerdp/core/transport.c index d6b164d33..4b2051e31 100644 --- a/libfreerdp-core/transport.c +++ b/libfreerdp/core/transport.c @@ -17,10 +17,14 @@ * limitations under the License. */ +#ifdef HAVE_CONFIG_H #include "config.h" +#endif + #include #include #include + #include #include #include diff --git a/libfreerdp-core/transport.h b/libfreerdp/core/transport.h similarity index 100% rename from libfreerdp-core/transport.h rename to libfreerdp/core/transport.h diff --git a/libfreerdp-core/tsg.c b/libfreerdp/core/tsg.c similarity index 99% rename from libfreerdp-core/tsg.c rename to libfreerdp/core/tsg.c index 6e4aaea89..1c738e936 100644 --- a/libfreerdp-core/tsg.c +++ b/libfreerdp/core/tsg.c @@ -18,7 +18,9 @@ * limitations under the License. */ +#ifdef HAVE_CONFIG_H #include "config.h" +#endif #include #include diff --git a/libfreerdp-core/tsg.h b/libfreerdp/core/tsg.h similarity index 100% rename from libfreerdp-core/tsg.h rename to libfreerdp/core/tsg.h diff --git a/libfreerdp-core/update.c b/libfreerdp/core/update.c similarity index 99% rename from libfreerdp-core/update.c rename to libfreerdp/core/update.c index 222458d43..bcb4ff1f6 100644 --- a/libfreerdp-core/update.c +++ b/libfreerdp/core/update.c @@ -17,6 +17,10 @@ * limitations under the License. */ +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + #include "update.h" #include "surface.h" #include diff --git a/libfreerdp-core/update.h b/libfreerdp/core/update.h similarity index 100% rename from libfreerdp-core/update.h rename to libfreerdp/core/update.h diff --git a/libfreerdp-core/window.c b/libfreerdp/core/window.c similarity index 99% rename from libfreerdp-core/window.c rename to libfreerdp/core/window.c index 35058197e..a0de29fab 100644 --- a/libfreerdp-core/window.c +++ b/libfreerdp/core/window.c @@ -18,6 +18,10 @@ * limitations under the License. */ +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + #include #include diff --git a/libfreerdp-core/window.h b/libfreerdp/core/window.h similarity index 100% rename from libfreerdp-core/window.h rename to libfreerdp/core/window.h diff --git a/libfreerdp-crypto/CMakeLists.txt b/libfreerdp/crypto/CMakeLists.txt similarity index 56% rename from libfreerdp-crypto/CMakeLists.txt rename to libfreerdp/crypto/CMakeLists.txt index 6ad0d9af4..554f7336e 100644 --- a/libfreerdp-crypto/CMakeLists.txt +++ b/libfreerdp/crypto/CMakeLists.txt @@ -27,23 +27,40 @@ set(FREERDP_CRYPTO_SRCS crypto.c tls.c) -add_library(freerdp-crypto ${FREERDP_CRYPTO_SRCS}) +if(WITH_MONOLITHIC_BUILD) + add_library(freerdp-crypto OBJECT ${FREERDP_CRYPTO_SRCS}) +else() + add_library(freerdp-crypto ${FREERDP_CRYPTO_SRCS}) +endif() include_directories(${OPENSSL_INCLUDE_DIR}) include_directories(${ZLIB_INCLUDE_DIRS}) set_target_properties(freerdp-crypto PROPERTIES VERSION ${FREERDP_VERSION_FULL} SOVERSION ${FREERDP_VERSION} PREFIX "lib") -if(WIN32) - target_link_libraries(freerdp-crypto ws2_32) +set(FREERDP_CRYPTO_LIBS + ${OPENSSL_LIBRARIES}) + +if(WITH_MONOLITHIC_BUILD) + set(FREERDP_CRYPTO_LIBS ${FREERDP_CRYPTO_LIBS} winpr) else() - target_link_libraries(freerdp-crypto ${ZLIB_LIBRARIES}) - target_link_libraries(freerdp-crypto winpr-library) + set(FREERDP_CRYPTO_LIBS ${FREERDP_CRYPTO_LIBS} winpr-sspi) + + if(NOT WIN32) + set(FREERDP_CRYPTO_LIBS ${FREERDP_CRYPTO_LIBS} winpr-library) + endif() endif() -target_link_libraries(freerdp-crypto winpr-sspi) -target_link_libraries(freerdp-crypto freerdp-utils) -target_link_libraries(freerdp-crypto ${OPENSSL_LIBRARIES}) - -install(TARGETS freerdp-crypto DESTINATION ${CMAKE_INSTALL_LIBDIR}) +if(WIN32) + set(FREERDP_CRYPTO_LIBS ${FREERDP_CRYPTO_LIBS} ws2_32) +else() + set(FREERDP_CRYPTO_LIBS ${FREERDP_CRYPTO_LIBS} ${ZLIB_LIBRARIES}) +endif() +if(WITH_MONOLITHIC_BUILD) + set(FREERDP_LIBS ${FREERDP_LIBS} ${FREERDP_CRYPTO_LIBS} PARENT_SCOPE) +else() + set(FREERDP_CRYPTO_LIBS ${FREERDP_CRYPTO_LIBS} freerdp-utils) + target_link_libraries(freerdp-crypto ${FREERDP_CRYPTO_LIBS}) + install(TARGETS freerdp-crypto DESTINATION ${CMAKE_INSTALL_LIBDIR}) +endif() diff --git a/libfreerdp-crypto/ber.c b/libfreerdp/crypto/ber.c similarity index 99% rename from libfreerdp-crypto/ber.c rename to libfreerdp/crypto/ber.c index 0b30879ce..3fe817a40 100644 --- a/libfreerdp-crypto/ber.c +++ b/libfreerdp/crypto/ber.c @@ -17,6 +17,10 @@ * limitations under the License. */ +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + #include void ber_read_length(STREAM* s, int* length) diff --git a/libfreerdp-crypto/certificate.c b/libfreerdp/crypto/certificate.c similarity index 99% rename from libfreerdp-crypto/certificate.c rename to libfreerdp/crypto/certificate.c index da08ff7cf..61e0ab0f3 100644 --- a/libfreerdp-crypto/certificate.c +++ b/libfreerdp/crypto/certificate.c @@ -18,6 +18,10 @@ * limitations under the License. */ +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + #include #include #include diff --git a/libfreerdp-crypto/crypto.c b/libfreerdp/crypto/crypto.c similarity index 99% rename from libfreerdp-crypto/crypto.c rename to libfreerdp/crypto/crypto.c index 832ac747c..d5b0a7d54 100644 --- a/libfreerdp-crypto/crypto.c +++ b/libfreerdp/crypto/crypto.c @@ -17,6 +17,10 @@ * limitations under the License. */ +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + #include CryptoSha1 crypto_sha1_init(void) diff --git a/libfreerdp-crypto/der.c b/libfreerdp/crypto/der.c similarity index 97% rename from libfreerdp-crypto/der.c rename to libfreerdp/crypto/der.c index 395b94ec3..441496d83 100644 --- a/libfreerdp-crypto/der.c +++ b/libfreerdp/crypto/der.c @@ -17,6 +17,10 @@ * limitations under the License. */ +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + #include int _der_skip_length(int length) diff --git a/libfreerdp-crypto/er.c b/libfreerdp/crypto/er.c similarity index 99% rename from libfreerdp-crypto/er.c rename to libfreerdp/crypto/er.c index 3307b6ecd..efcc6a46c 100644 --- a/libfreerdp-crypto/er.c +++ b/libfreerdp/crypto/er.c @@ -18,6 +18,10 @@ * limitations under the License. */ +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + #include #include #include diff --git a/libfreerdp-crypto/nla.c b/libfreerdp/crypto/nla.c similarity index 99% rename from libfreerdp-crypto/nla.c rename to libfreerdp/crypto/nla.c index 8037f9fb1..6c25fc199 100644 --- a/libfreerdp-crypto/nla.c +++ b/libfreerdp/crypto/nla.c @@ -17,6 +17,10 @@ * limitations under the License. */ +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + #include #ifndef _WIN32 diff --git a/libfreerdp-crypto/per.c b/libfreerdp/crypto/per.c similarity index 99% rename from libfreerdp-crypto/per.c rename to libfreerdp/crypto/per.c index 919e64f26..34d723647 100644 --- a/libfreerdp-crypto/per.c +++ b/libfreerdp/crypto/per.c @@ -17,6 +17,10 @@ * limitations under the License. */ +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + #include /** diff --git a/libfreerdp-crypto/tls.c b/libfreerdp/crypto/tls.c similarity index 99% rename from libfreerdp-crypto/tls.c rename to libfreerdp/crypto/tls.c index 1c099ef69..b4e8720ac 100644 --- a/libfreerdp-crypto/tls.c +++ b/libfreerdp/crypto/tls.c @@ -17,6 +17,10 @@ * limitations under the License. */ +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + #include #include diff --git a/libfreerdp-gdi/16bpp.c b/libfreerdp/gdi/16bpp.c similarity index 99% rename from libfreerdp-gdi/16bpp.c rename to libfreerdp/gdi/16bpp.c index 46ca0df69..fee35ef76 100644 --- a/libfreerdp-gdi/16bpp.c +++ b/libfreerdp/gdi/16bpp.c @@ -17,9 +17,14 @@ * limitations under the License. */ +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + #include #include #include + #include #include #include diff --git a/libfreerdp-gdi/32bpp.c b/libfreerdp/gdi/32bpp.c similarity index 99% rename from libfreerdp-gdi/32bpp.c rename to libfreerdp/gdi/32bpp.c index 0d5fbd228..570bb2e1c 100644 --- a/libfreerdp-gdi/32bpp.c +++ b/libfreerdp/gdi/32bpp.c @@ -17,9 +17,14 @@ * limitations under the License. */ +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + #include #include #include + #include #include #include diff --git a/libfreerdp-gdi/8bpp.c b/libfreerdp/gdi/8bpp.c similarity index 99% rename from libfreerdp-gdi/8bpp.c rename to libfreerdp/gdi/8bpp.c index bddf3277e..f4fce0f9f 100644 --- a/libfreerdp-gdi/8bpp.c +++ b/libfreerdp/gdi/8bpp.c @@ -17,9 +17,14 @@ * limitations under the License. */ +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + #include #include #include + #include #include #include diff --git a/libfreerdp-gdi/CMakeLists.txt b/libfreerdp/gdi/CMakeLists.txt similarity index 67% rename from libfreerdp-gdi/CMakeLists.txt rename to libfreerdp/gdi/CMakeLists.txt index 599134821..2513b0673 100644 --- a/libfreerdp-gdi/CMakeLists.txt +++ b/libfreerdp/gdi/CMakeLists.txt @@ -17,6 +17,8 @@ # See the License for the specific language governing permissions and # limitations under the License. +include_directories(${CMAKE_CURRENT_SOURCE_DIR}) + set(FREERDP_GDI_SRCS 8bpp.c 16bpp.c @@ -36,12 +38,25 @@ set(FREERDP_GDI_SRCS gdi.c gdi.h) -add_library(freerdp-gdi ${FREERDP_GDI_SRCS}) - -target_link_libraries(freerdp-gdi freerdp-core) -target_link_libraries(freerdp-gdi freerdp-cache) -target_link_libraries(freerdp-gdi freerdp-codec) +if(WITH_MONOLITHIC_BUILD) + add_library(freerdp-gdi OBJECT ${FREERDP_GDI_SRCS}) +else() + add_library(freerdp-gdi ${FREERDP_GDI_SRCS}) +endif() set_target_properties(freerdp-gdi PROPERTIES VERSION ${FREERDP_VERSION_FULL} SOVERSION ${FREERDP_VERSION} PREFIX "lib") -install(TARGETS freerdp-gdi DESTINATION ${CMAKE_INSTALL_LIBDIR}) +set(FREERDP_GDI_LIBS) + +if(WITH_MONOLITHIC_BUILD) + set(FREERDP_LIBS ${FREERDP_LIBS} ${FREERDP_GDI_LIBS} PARENT_SCOPE) +else() + set(FREERDP_GDI_LIBS ${FREERDP_GDI_LIBS} + freerdp-core + freerdp-cache + freerdp-codec) + + target_link_libraries(freerdp-gdi ${FREERDP_GDI_LIBS}) + install(TARGETS freerdp-gdi DESTINATION ${CMAKE_INSTALL_LIBDIR}) +endif() + diff --git a/libfreerdp-gdi/bitmap.c b/libfreerdp/gdi/bitmap.c similarity index 99% rename from libfreerdp-gdi/bitmap.c rename to libfreerdp/gdi/bitmap.c index a1f980a39..d9d326c44 100644 --- a/libfreerdp-gdi/bitmap.c +++ b/libfreerdp/gdi/bitmap.c @@ -17,9 +17,14 @@ * limitations under the License. */ +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + #include #include #include + #include #include #include diff --git a/libfreerdp-gdi/brush.c b/libfreerdp/gdi/brush.c similarity index 97% rename from libfreerdp-gdi/brush.c rename to libfreerdp/gdi/brush.c index d77702e8c..74f991e2f 100644 --- a/libfreerdp-gdi/brush.c +++ b/libfreerdp/gdi/brush.c @@ -19,6 +19,10 @@ /* GDI Brush Functions: http://msdn.microsoft.com/en-us/library/dd183395/ */ +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + #include #include #include diff --git a/libfreerdp-gdi/clipping.c b/libfreerdp/gdi/clipping.c similarity index 98% rename from libfreerdp-gdi/clipping.c rename to libfreerdp/gdi/clipping.c index c805a43c0..7c3b71672 100644 --- a/libfreerdp-gdi/clipping.c +++ b/libfreerdp/gdi/clipping.c @@ -17,9 +17,14 @@ * limitations under the License. */ +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + #include #include #include + #include #include diff --git a/libfreerdp-gdi/dc.c b/libfreerdp/gdi/dc.c similarity index 99% rename from libfreerdp-gdi/dc.c rename to libfreerdp/gdi/dc.c index 63a754e68..24efc4dc9 100644 --- a/libfreerdp-gdi/dc.c +++ b/libfreerdp/gdi/dc.c @@ -19,9 +19,14 @@ /* Device Context Functions: http://msdn.microsoft.com/en-us/library/dd183554 */ +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + #include #include #include + #include #include #include diff --git a/libfreerdp-gdi/drawing.c b/libfreerdp/gdi/drawing.c similarity index 98% rename from libfreerdp-gdi/drawing.c rename to libfreerdp/gdi/drawing.c index 98f50c316..2a62055f9 100644 --- a/libfreerdp-gdi/drawing.c +++ b/libfreerdp/gdi/drawing.c @@ -19,6 +19,10 @@ /* GDI Drawing Functions: http://msdn.microsoft.com/en-us/library/dd162760/ */ +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + #include #include #include diff --git a/libfreerdp-gdi/gdi.c b/libfreerdp/gdi/gdi.c similarity index 99% rename from libfreerdp-gdi/gdi.c rename to libfreerdp/gdi/gdi.c index 99b9829ae..c97a2005c 100644 --- a/libfreerdp-gdi/gdi.c +++ b/libfreerdp/gdi/gdi.c @@ -17,9 +17,14 @@ * limitations under the License. */ +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + #include #include #include + #include #include #include diff --git a/libfreerdp-gdi/gdi.h b/libfreerdp/gdi/gdi.h similarity index 97% rename from libfreerdp-gdi/gdi.h rename to libfreerdp/gdi/gdi.h index edf8950dc..99fa73683 100644 --- a/libfreerdp-gdi/gdi.h +++ b/libfreerdp/gdi/gdi.h @@ -20,7 +20,6 @@ #ifndef __GDI_CORE_H #define __GDI_CORE_H -#include "config.h" #include "graphics.h" gdiBitmap* gdi_bitmap_new_ex(rdpGdi* gdi, int width, int height, int bpp, uint8* data); diff --git a/libfreerdp-gdi/graphics.c b/libfreerdp/gdi/graphics.c similarity index 99% rename from libfreerdp-gdi/graphics.c rename to libfreerdp/gdi/graphics.c index 565ff46ea..bef0c6e61 100644 --- a/libfreerdp-gdi/graphics.c +++ b/libfreerdp/gdi/graphics.c @@ -17,6 +17,10 @@ * limitations under the License. */ +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + #include #include #include diff --git a/libfreerdp-gdi/graphics.h b/libfreerdp/gdi/graphics.h similarity index 100% rename from libfreerdp-gdi/graphics.h rename to libfreerdp/gdi/graphics.h diff --git a/libfreerdp-gdi/include/line.c b/libfreerdp/gdi/include/line.c similarity index 100% rename from libfreerdp-gdi/include/line.c rename to libfreerdp/gdi/include/line.c diff --git a/libfreerdp-gdi/line.c b/libfreerdp/gdi/line.c similarity index 98% rename from libfreerdp-gdi/line.c rename to libfreerdp/gdi/line.c index 014e90431..fafc73d69 100644 --- a/libfreerdp-gdi/line.c +++ b/libfreerdp/gdi/line.c @@ -17,6 +17,10 @@ * limitations under the License. */ +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + #include #include #include diff --git a/libfreerdp-gdi/palette.c b/libfreerdp/gdi/palette.c similarity index 98% rename from libfreerdp-gdi/palette.c rename to libfreerdp/gdi/palette.c index 86ecf3b07..2db3f722f 100644 --- a/libfreerdp-gdi/palette.c +++ b/libfreerdp/gdi/palette.c @@ -19,6 +19,10 @@ /* GDI Palette Functions: http://msdn.microsoft.com/en-us/library/dd183454/ */ +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + #include #include #include diff --git a/libfreerdp-gdi/pen.c b/libfreerdp/gdi/pen.c similarity index 97% rename from libfreerdp-gdi/pen.c rename to libfreerdp/gdi/pen.c index 7c662c918..beee3ef72 100644 --- a/libfreerdp-gdi/pen.c +++ b/libfreerdp/gdi/pen.c @@ -19,6 +19,10 @@ /* GDI Pen Functions: http://msdn.microsoft.com/en-us/library/dd162790 */ +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + #include #include #include diff --git a/libfreerdp-gdi/region.c b/libfreerdp/gdi/region.c similarity index 99% rename from libfreerdp-gdi/region.c rename to libfreerdp/gdi/region.c index b2520e9bf..c6d59de61 100644 --- a/libfreerdp-gdi/region.c +++ b/libfreerdp/gdi/region.c @@ -17,6 +17,10 @@ * limitations under the License. */ +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + #include #include #include diff --git a/libfreerdp-gdi/shape.c b/libfreerdp/gdi/shape.c similarity index 98% rename from libfreerdp-gdi/shape.c rename to libfreerdp/gdi/shape.c index 4ae449abe..894b04530 100644 --- a/libfreerdp-gdi/shape.c +++ b/libfreerdp/gdi/shape.c @@ -17,9 +17,14 @@ * limitations under the License. */ +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + #include #include #include + #include #include diff --git a/libfreerdp-locale/CMakeLists.txt b/libfreerdp/locale/CMakeLists.txt similarity index 77% rename from libfreerdp-locale/CMakeLists.txt rename to libfreerdp/locale/CMakeLists.txt index 0d7b2a498..8e9c27035 100644 --- a/libfreerdp-locale/CMakeLists.txt +++ b/libfreerdp/locale/CMakeLists.txt @@ -47,7 +47,7 @@ if(CMAKE_SYSTEM_NAME MATCHES Solaris) set(WITH_SUN true) endif() -set(FREERDP_LOCALE_LINK_LIBRARIES freerdp-utils) +set(FREERDP_LOCALE_LIBS) if(NOT WIN32) find_suggested_package(X11) @@ -55,7 +55,7 @@ if(NOT WIN32) add_definitions(-DWITH_X11) include_directories(${X11_INCLUDE_DIRS}) set(FREERDP_LOCALE_SRCS ${FREERDP_LOCALE_SRCS} ${FREERDP_LOCALE_X11_SRCS}) - set(FREERDP_LOCALE_LINK_LIBRARIES ${FREERDP_LOCALE_LINK_LIBRARIES} ${X11_LIBRARIES}) + set(FREERDP_LOCALE_LIBS ${FREERDP_LOCALE_LIBS} ${X11_LIBRARIES}) if(WITH_SUN) add_definitions(-DWITH_SUN) set(FREERDP_LOCALE_SRCS ${FREERDP_LOCALE_SRCS} ${FREERDP_LOCALE_SUN_SRCS}) @@ -66,17 +66,25 @@ if(NOT WIN32) add_definitions(-DWITH_XKBFILE) include_directories(${XKBFILE_INCLUDE_DIRS}) set(FREERDP_LOCALE_SRCS ${FREERDP_LOCALE_SRCS} ${FREERDP_LOCALE_XKBFILE_SRCS}) - set(FREERDP_LOCALE_LINK_LIBRARIES ${FREERDP_LOCALE_LINK_LIBRARIES} ${XKBFILE_LIBRARIES}) + set(FREERDP_LOCALE_LIBS ${FREERDP_LOCALE_LIBS} ${XKBFILE_LIBRARIES}) else() set(FREERDP_LOCALE_SRCS ${FREERDP_LOCALE_SRCS} ${FREERDP_LOCALE_X11_KEYMAP_SRCS}) endif() endif() endif() -add_library(freerdp-locale ${FREERDP_LOCALE_SRCS}) +if(WITH_MONOLITHIC_BUILD) + add_library(freerdp-locale OBJECT ${FREERDP_LOCALE_SRCS}) +else() + add_library(freerdp-locale ${FREERDP_LOCALE_SRCS}) +endif() set_target_properties(freerdp-locale PROPERTIES VERSION ${FREERDP_VERSION_FULL} SOVERSION ${FREERDP_VERSION} PREFIX "lib") -target_link_libraries(freerdp-locale ${FREERDP_LOCALE_LINK_LIBRARIES}) - -install(TARGETS freerdp-locale DESTINATION ${CMAKE_INSTALL_LIBDIR}) +if(WITH_MONOLITHIC_BUILD) + set(FREERDP_LIBS ${FREERDP_LIBS} ${FREERDP_LOCALE_LIBS} PARENT_SCOPE) +else() + set(FREERDP_LOCALE_LIBS ${FREERDP_LOCALE_LIBS} freerdp-utils) + target_link_libraries(freerdp-locale ${FREERDP_LOCALE_LIBS}) + install(TARGETS freerdp-locale DESTINATION ${CMAKE_INSTALL_LIBDIR}) +endif() diff --git a/libfreerdp-locale/keyboard.c b/libfreerdp/locale/keyboard.c similarity index 98% rename from libfreerdp-locale/keyboard.c rename to libfreerdp/locale/keyboard.c index a42876206..2e563e787 100644 --- a/libfreerdp-locale/keyboard.c +++ b/libfreerdp/locale/keyboard.c @@ -17,6 +17,10 @@ * limitations under the License. */ +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + #include #include diff --git a/libfreerdp-locale/keyboard_keymap.c b/libfreerdp/locale/keyboard_keymap.c similarity index 99% rename from libfreerdp-locale/keyboard_keymap.c rename to libfreerdp/locale/keyboard_keymap.c index 67fca77c2..5e74e2795 100644 --- a/libfreerdp-locale/keyboard_keymap.c +++ b/libfreerdp/locale/keyboard_keymap.c @@ -17,6 +17,10 @@ * limitations under the License. */ +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + #include "keyboard_keymap.h" #include @@ -24,7 +28,6 @@ #include #include -#include "config.h" #include "liblocale.h" #include diff --git a/libfreerdp-locale/keyboard_keymap.h b/libfreerdp/locale/keyboard_keymap.h similarity index 100% rename from libfreerdp-locale/keyboard_keymap.h rename to libfreerdp/locale/keyboard_keymap.h diff --git a/libfreerdp-locale/keyboard_layout.c b/libfreerdp/locale/keyboard_layout.c similarity index 99% rename from libfreerdp-locale/keyboard_layout.c rename to libfreerdp/locale/keyboard_layout.c index 202759ab5..52d2a1934 100644 --- a/libfreerdp-locale/keyboard_layout.c +++ b/libfreerdp/locale/keyboard_layout.c @@ -17,9 +17,14 @@ * limitations under the License. */ +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + #include #include #include + #include "liblocale.h" #include diff --git a/libfreerdp-locale/keyboard_sun.c b/libfreerdp/locale/keyboard_sun.c similarity index 99% rename from libfreerdp-locale/keyboard_sun.c rename to libfreerdp/locale/keyboard_sun.c index 19a49a4b9..aa41e1cf6 100644 --- a/libfreerdp-locale/keyboard_sun.c +++ b/libfreerdp/locale/keyboard_sun.c @@ -17,6 +17,10 @@ * limitations under the License. */ +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + #include #include #include diff --git a/libfreerdp-locale/keyboard_sun.h b/libfreerdp/locale/keyboard_sun.h similarity index 100% rename from libfreerdp-locale/keyboard_sun.h rename to libfreerdp/locale/keyboard_sun.h diff --git a/libfreerdp-locale/keyboard_x11.c b/libfreerdp/locale/keyboard_x11.c similarity index 99% rename from libfreerdp-locale/keyboard_x11.c rename to libfreerdp/locale/keyboard_x11.c index 7f73e2ba0..55737d697 100644 --- a/libfreerdp-locale/keyboard_x11.c +++ b/libfreerdp/locale/keyboard_x11.c @@ -17,6 +17,10 @@ * limitations under the License. */ +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + #include #include #include diff --git a/libfreerdp-locale/keyboard_x11.h b/libfreerdp/locale/keyboard_x11.h similarity index 100% rename from libfreerdp-locale/keyboard_x11.h rename to libfreerdp/locale/keyboard_x11.h diff --git a/libfreerdp-locale/keyboard_xkbfile.c b/libfreerdp/locale/keyboard_xkbfile.c similarity index 99% rename from libfreerdp-locale/keyboard_xkbfile.c rename to libfreerdp/locale/keyboard_xkbfile.c index 73dca77f3..2d13a8d30 100644 --- a/libfreerdp-locale/keyboard_xkbfile.c +++ b/libfreerdp/locale/keyboard_xkbfile.c @@ -17,6 +17,10 @@ * limitations under the License. */ +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + #include "keyboard_xkbfile.h" #include diff --git a/libfreerdp-locale/keyboard_xkbfile.h b/libfreerdp/locale/keyboard_xkbfile.h similarity index 100% rename from libfreerdp-locale/keyboard_xkbfile.h rename to libfreerdp/locale/keyboard_xkbfile.h diff --git a/libfreerdp-locale/liblocale.h b/libfreerdp/locale/liblocale.h similarity index 97% rename from libfreerdp-locale/liblocale.h rename to libfreerdp/locale/liblocale.h index 40aefe782..27c0987c9 100644 --- a/libfreerdp-locale/liblocale.h +++ b/libfreerdp/locale/liblocale.h @@ -20,7 +20,10 @@ #ifndef __LIBLOCALE_H #define __LIBLOCALE_H +#ifdef HAVE_CONFIG_H #include "config.h" +#endif + #include #ifdef WITH_DEBUG_KBD diff --git a/libfreerdp-locale/locale.c b/libfreerdp/locale/locale.c similarity index 99% rename from libfreerdp-locale/locale.c rename to libfreerdp/locale/locale.c index 2a6c71707..82362ef78 100644 --- a/libfreerdp-locale/locale.c +++ b/libfreerdp/locale/locale.c @@ -17,9 +17,14 @@ * limitations under the License. */ +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + #include #include #include + #include "liblocale.h" #include diff --git a/libfreerdp-locale/timezone.c b/libfreerdp/locale/timezone.c similarity index 99% rename from libfreerdp-locale/timezone.c rename to libfreerdp/locale/timezone.c index 85ea4011a..0508fb5c1 100644 --- a/libfreerdp-locale/timezone.c +++ b/libfreerdp/locale/timezone.c @@ -17,11 +17,14 @@ * limitations under the License. */ +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + #include #include #include -#include "config.h" #include "liblocale.h" #include @@ -1649,7 +1652,6 @@ TIME_ZONE_RULE_ENTRY* freerdp_get_current_time_zone_rule(TIME_ZONE_RULE_ENTRY* r void freerdp_time_zone_detect(TIME_ZONE_INFO* clientTimeZone) { time_t t; - sint32 sbias; TIME_ZONE_ENTRY* tz; struct tm* local_time; @@ -1658,15 +1660,9 @@ void freerdp_time_zone_detect(TIME_ZONE_INFO* clientTimeZone) #ifdef HAVE_TM_GMTOFF if (local_time->tm_gmtoff >= 0) - { - sbias = local_time->tm_gmtoff / 60; - clientTimeZone->bias = (uint32) sbias; - } + clientTimeZone->bias = (uint32) (local_time->tm_gmtoff / 60); else - { - sbias = local_time->tm_gmtoff / 60; - clientTimeZone->bias = (uint32) (1440 + sbias); - } + clientTimeZone->bias = (uint32) (1440 + (sint32) (local_time->tm_gmtoff / 60)); #elif sun if (local_time->tm_isdst > 0) clientTimeZone->bias = (uint32) (altzone / 3600); diff --git a/libfreerdp-locale/virtual_key_codes.c b/libfreerdp/locale/virtual_key_codes.c similarity index 99% rename from libfreerdp-locale/virtual_key_codes.c rename to libfreerdp/locale/virtual_key_codes.c index a011451f0..7e8b7cf86 100644 --- a/libfreerdp-locale/virtual_key_codes.c +++ b/libfreerdp/locale/virtual_key_codes.c @@ -17,6 +17,10 @@ * limitations under the License. */ +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + #include #include diff --git a/libfreerdp-locale/xkb_layout_ids.c b/libfreerdp/locale/xkb_layout_ids.c similarity index 99% rename from libfreerdp-locale/xkb_layout_ids.c rename to libfreerdp/locale/xkb_layout_ids.c index 696350ca1..d2b18b8eb 100644 --- a/libfreerdp-locale/xkb_layout_ids.c +++ b/libfreerdp/locale/xkb_layout_ids.c @@ -17,6 +17,10 @@ * limitations under the License. */ +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + #include "xkb_layout_ids.h" #include diff --git a/libfreerdp-locale/xkb_layout_ids.h b/libfreerdp/locale/xkb_layout_ids.h similarity index 100% rename from libfreerdp-locale/xkb_layout_ids.h rename to libfreerdp/locale/xkb_layout_ids.h diff --git a/libfreerdp-rail/CMakeLists.txt b/libfreerdp/rail/CMakeLists.txt similarity index 68% rename from libfreerdp-rail/CMakeLists.txt rename to libfreerdp/rail/CMakeLists.txt index b8648524e..728441ae3 100644 --- a/libfreerdp-rail/CMakeLists.txt +++ b/libfreerdp/rail/CMakeLists.txt @@ -24,10 +24,20 @@ set(FREERDP_RAIL_SRCS rail.c librail.h) -add_library(freerdp-rail ${FREERDP_RAIL_SRCS}) +if(WITH_MONOLITHIC_BUILD) + add_library(freerdp-rail OBJECT ${FREERDP_RAIL_SRCS}) +else() + add_library(freerdp-rail ${FREERDP_RAIL_SRCS}) +endif() set_target_properties(freerdp-rail PROPERTIES VERSION ${FREERDP_VERSION_FULL} SOVERSION ${FREERDP_VERSION} PREFIX "lib") -target_link_libraries(freerdp-rail freerdp-utils) +set(FREERDP_RAIL_LIBS) -install(TARGETS freerdp-rail DESTINATION ${CMAKE_INSTALL_LIBDIR}) +if(WITH_MONOLITHIC_BUILD) + set(FREERDP_LIBS ${FREERDP_LIBS} ${FREERDP_RAIL_LIBS} PARENT_SCOPE) +else() + set(FREERDP_RAIL_LIBS ${FREERDP_RAIL_LIBS} freerdp-utils) + target_link_libraries(freerdp-rail ${FREERDP_RAIL_LIBS}) + install(TARGETS freerdp-rail DESTINATION ${CMAKE_INSTALL_LIBDIR}) +endif() diff --git a/libfreerdp-rail/icon.c b/libfreerdp/rail/icon.c similarity index 98% rename from libfreerdp-rail/icon.c rename to libfreerdp/rail/icon.c index 3a9e167f1..bbca5a7ad 100644 --- a/libfreerdp-rail/icon.c +++ b/libfreerdp/rail/icon.c @@ -17,6 +17,10 @@ * limitations under the License. */ +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + #include #include #include diff --git a/libfreerdp-rail/librail.h b/libfreerdp/rail/librail.h similarity index 97% rename from libfreerdp-rail/librail.h rename to libfreerdp/rail/librail.h index 08f1f6863..68d9c8b49 100644 --- a/libfreerdp-rail/librail.h +++ b/libfreerdp/rail/librail.h @@ -20,7 +20,10 @@ #ifndef __LIBRAIL_H #define __LIBRAIL_H +#ifdef HAVE_CONFIG_H #include "config.h" +#endif + #include #ifdef WITH_DEBUG_RAIL diff --git a/libfreerdp-rail/rail.c b/libfreerdp/rail/rail.c similarity index 99% rename from libfreerdp-rail/rail.c rename to libfreerdp/rail/rail.c index 0423b9087..d0aeb6a12 100644 --- a/libfreerdp-rail/rail.c +++ b/libfreerdp/rail/rail.c @@ -17,6 +17,10 @@ * limitations under the License. */ +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + #include #include diff --git a/libfreerdp-rail/window.c b/libfreerdp/rail/window.c similarity index 99% rename from libfreerdp-rail/window.c rename to libfreerdp/rail/window.c index 7b39fa13b..208e560c9 100644 --- a/libfreerdp-rail/window.c +++ b/libfreerdp/rail/window.c @@ -17,7 +17,12 @@ * limitations under the License. */ +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + #include + #include #include #include diff --git a/libfreerdp-rail/window_list.c b/libfreerdp/rail/window_list.c similarity index 96% rename from libfreerdp-rail/window_list.c rename to libfreerdp/rail/window_list.c index e8bc190a9..027c8e4c2 100644 --- a/libfreerdp-rail/window_list.c +++ b/libfreerdp/rail/window_list.c @@ -17,6 +17,10 @@ * limitations under the License. */ +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + #include #include @@ -97,10 +101,10 @@ void window_list_create(rdpWindowList* list, WINDOW_ORDER_INFO* orderInfo, WINDO { rdpWindow* window; - //See if the window already exists + /* See if the window already exists */ window = window_list_get_by_id(list, orderInfo->windowId); - //If the window already exists, just update the existing window + /* If the window already exists, just update the existing window */ if (window != NULL) { window_list_update(list, orderInfo, window_state); @@ -188,7 +192,6 @@ void window_list_delete(rdpWindowList* list, WINDOW_ORDER_INFO* orderInfo) void window_list_clear(rdpWindowList* list) { rdpWindow* current = list->head; - rdpWindow* next; while (current != NULL) { @@ -200,7 +203,6 @@ void window_list_clear(rdpWindowList* list) list->tail = NULL; } - rdpWindowList* window_list_new(rdpRail* rail) { rdpWindowList* list; diff --git a/libfreerdp-utils/CMakeLists.txt b/libfreerdp/utils/CMakeLists.txt similarity index 70% rename from libfreerdp-utils/CMakeLists.txt rename to libfreerdp/utils/CMakeLists.txt index f1b3e3335..4f748c40e 100644 --- a/libfreerdp-utils/CMakeLists.txt +++ b/libfreerdp/utils/CMakeLists.txt @@ -51,17 +51,29 @@ set(FREERDP_UTILS_SRCS unicode.c wait_obj.c) -add_library(freerdp-utils ${FREERDP_UTILS_SRCS}) +if(WITH_MONOLITHIC_BUILD) + add_library(freerdp-utils OBJECT ${FREERDP_UTILS_SRCS}) +else() + add_library(freerdp-utils ${FREERDP_UTILS_SRCS}) +endif() set_target_properties(freerdp-utils PROPERTIES VERSION ${FREERDP_VERSION_FULL} SOVERSION ${FREERDP_VERSION} PREFIX "lib") -target_link_libraries(freerdp-utils ${CMAKE_THREAD_LIBS_INIT} ${CMAKE_DL_LIBS}) +set(FREERDP_UTILS_LIBS + ${CMAKE_THREAD_LIBS_INIT} + ${CMAKE_DL_LIBS}) if(WIN32) - target_link_libraries(freerdp-utils ws2_32) -endif() -if(${CMAKE_SYSTEM_NAME} MATCHES SunOS) - target_link_libraries(freerdp-utils rt) + set(FREERDP_UTILS_LIBS ${FREERDP_UTILS_LIBS} ws2_32) endif() -install(TARGETS freerdp-utils DESTINATION ${CMAKE_INSTALL_LIBDIR}) +if(${CMAKE_SYSTEM_NAME} MATCHES SunOS) + set(FREERDP_UTILS_LIBS ${FREERDP_UTILS_LIBS} rt) +endif() + +if(WITH_MONOLITHIC_BUILD) + set(FREERDP_LIBS ${FREERDP_LIBS} ${FREERDP_UTILS_LIBS} PARENT_SCOPE) +else() + target_link_libraries(freerdp-utils ${FREERDP_UTILS_LIBS}) + install(TARGETS freerdp-utils DESTINATION ${CMAKE_INSTALL_LIBDIR}) +endif() diff --git a/libfreerdp-utils/args.c b/libfreerdp/utils/args.c similarity index 98% rename from libfreerdp-utils/args.c rename to libfreerdp/utils/args.c index 85d69dd38..481b45eaf 100644 --- a/libfreerdp-utils/args.c +++ b/libfreerdp/utils/args.c @@ -18,10 +18,14 @@ * limitations under the License. */ +#ifdef HAVE_CONFIG_H #include "config.h" +#endif + #include #include #include + #include #include #include @@ -29,30 +33,37 @@ #include #include - -void freerdp_parse_hostname(rdpSettings* settings, char* hostname) { +void freerdp_parse_hostname(rdpSettings* settings, char* hostname) +{ char* p; + if (hostname[0] == '[' && (p = strchr(hostname, ']')) - && (p[1] == 0 || (p[1] == ':' && !strchr(p + 2, ':')))) { - /* Either "[...]" or "[...]:..." with at most one : after the brackets */ + && (p[1] == 0 || (p[1] == ':' && !strchr(p + 2, ':')))) + { + /* Either "[...]" or "[...]:..." with at most one : after the brackets */ settings->hostname = xstrdup(hostname + 1); - if ((p = strchr((char*)settings->hostname, ']'))) { + + if ((p = strchr((char*)settings->hostname, ']'))) + { *p = 0; + if (p[1] == ':') settings->port = atoi(p + 2); } - } else { + } + else + { /* Port number is cut off and used if exactly one : in the string */ settings->hostname = xstrdup(hostname); - if ((p = strchr((char*)settings->hostname, ':')) && !strchr(p + 1, ':')) { + + if ((p = strchr((char*)settings->hostname, ':')) && !strchr(p + 1, ':')) + { *p = 0; settings->port = atoi(p + 1); } } } - - /** * Parse command-line arguments and update rdpSettings members accordingly. * @param settings pointer to rdpSettings struct to be updated. diff --git a/libfreerdp-utils/bitmap.c b/libfreerdp/utils/bitmap.c similarity index 97% rename from libfreerdp-utils/bitmap.c rename to libfreerdp/utils/bitmap.c index bbcfbdb7e..e77d56a62 100644 --- a/libfreerdp-utils/bitmap.c +++ b/libfreerdp/utils/bitmap.c @@ -17,6 +17,10 @@ * limitations under the License. */ +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + #include #include diff --git a/libfreerdp-utils/blob.c b/libfreerdp/utils/blob.c similarity index 96% rename from libfreerdp-utils/blob.c rename to libfreerdp/utils/blob.c index 1c2eef069..045da60b1 100644 --- a/libfreerdp-utils/blob.c +++ b/libfreerdp/utils/blob.c @@ -17,6 +17,10 @@ * limitations under the License. */ +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + #include #include diff --git a/libfreerdp-utils/dsp.c b/libfreerdp/utils/dsp.c similarity index 99% rename from libfreerdp-utils/dsp.c rename to libfreerdp/utils/dsp.c index e1b7a138b..c89c900cf 100644 --- a/libfreerdp-utils/dsp.c +++ b/libfreerdp/utils/dsp.c @@ -17,9 +17,14 @@ * limitations under the License. */ +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + #include #include #include + #include #include #include diff --git a/libfreerdp-utils/event.c b/libfreerdp/utils/event.c similarity index 98% rename from libfreerdp-utils/event.c rename to libfreerdp/utils/event.c index b3f0cdc71..f559b3f21 100644 --- a/libfreerdp-utils/event.c +++ b/libfreerdp/utils/event.c @@ -17,9 +17,14 @@ * limitations under the License. */ +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + #include #include #include + #include #include #include diff --git a/libfreerdp-utils/file.c b/libfreerdp/utils/file.c similarity index 99% rename from libfreerdp-utils/file.c rename to libfreerdp/utils/file.c index f1985da0e..fa3e47ce8 100644 --- a/libfreerdp-utils/file.c +++ b/libfreerdp/utils/file.c @@ -17,6 +17,10 @@ * limitations under the License. */ +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + #include #include #include diff --git a/libfreerdp-utils/hexdump.c b/libfreerdp/utils/hexdump.c similarity index 96% rename from libfreerdp-utils/hexdump.c rename to libfreerdp/utils/hexdump.c index 1db8cd6e2..665aeb000 100644 --- a/libfreerdp-utils/hexdump.c +++ b/libfreerdp/utils/hexdump.c @@ -17,6 +17,10 @@ * limitations under the License. */ +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + #include #include diff --git a/libfreerdp-utils/list.c b/libfreerdp/utils/list.c similarity index 99% rename from libfreerdp-utils/list.c rename to libfreerdp/utils/list.c index 936b21762..265753ba6 100644 --- a/libfreerdp-utils/list.c +++ b/libfreerdp/utils/list.c @@ -17,9 +17,14 @@ * limitations under the License. */ +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + #include #include #include + #include #include diff --git a/libfreerdp-utils/load_plugin.c b/libfreerdp/utils/load_plugin.c similarity index 99% rename from libfreerdp-utils/load_plugin.c rename to libfreerdp/utils/load_plugin.c index 6bf1f0a1d..c36e7ba62 100644 --- a/libfreerdp-utils/load_plugin.c +++ b/libfreerdp/utils/load_plugin.c @@ -17,7 +17,9 @@ * limitations under the License. */ +#ifdef HAVE_CONFIG_H #include "config.h" +#endif #include #include diff --git a/libfreerdp-utils/memory.c b/libfreerdp/utils/memory.c similarity index 99% rename from libfreerdp-utils/memory.c rename to libfreerdp/utils/memory.c index fae1cc2bc..011d5eacf 100644 --- a/libfreerdp-utils/memory.c +++ b/libfreerdp/utils/memory.c @@ -17,6 +17,10 @@ * limitations under the License. */ +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + #include #include #include diff --git a/libfreerdp-utils/mutex.c b/libfreerdp/utils/mutex.c similarity index 98% rename from libfreerdp-utils/mutex.c rename to libfreerdp/utils/mutex.c index 49c539076..08c996f60 100644 --- a/libfreerdp-utils/mutex.c +++ b/libfreerdp/utils/mutex.c @@ -17,6 +17,10 @@ * limitations under the License. */ +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + #include #include #include diff --git a/libfreerdp-utils/passphrase.c b/libfreerdp/utils/passphrase.c similarity index 98% rename from libfreerdp-utils/passphrase.c rename to libfreerdp/utils/passphrase.c index 9f73bbd8d..35c1b8a78 100644 --- a/libfreerdp-utils/passphrase.c +++ b/libfreerdp/utils/passphrase.c @@ -17,6 +17,10 @@ * limitations under the License. */ +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + #include #include #ifdef _WIN32 diff --git a/libfreerdp-utils/pcap.c b/libfreerdp/utils/pcap.c similarity index 98% rename from libfreerdp-utils/pcap.c rename to libfreerdp/utils/pcap.c index 6de19a6dd..905905b7a 100644 --- a/libfreerdp-utils/pcap.c +++ b/libfreerdp/utils/pcap.c @@ -17,6 +17,10 @@ * limitations under the License. */ +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + #include #include diff --git a/libfreerdp-utils/profiler.c b/libfreerdp/utils/profiler.c similarity index 98% rename from libfreerdp-utils/profiler.c rename to libfreerdp/utils/profiler.c index e4406b86f..dfd547a46 100644 --- a/libfreerdp-utils/profiler.c +++ b/libfreerdp/utils/profiler.c @@ -17,7 +17,10 @@ * limitations under the License. */ +#ifdef HAVE_CONFIG_H #include "config.h" +#endif + #include PROFILER* profiler_create(char* name) diff --git a/libfreerdp-utils/rail.c b/libfreerdp/utils/rail.c similarity index 99% rename from libfreerdp-utils/rail.c rename to libfreerdp/utils/rail.c index dbd7d3f54..99f41f487 100644 --- a/libfreerdp-utils/rail.c +++ b/libfreerdp/utils/rail.c @@ -17,6 +17,10 @@ * limitations under the License. */ +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + #include #include diff --git a/libfreerdp-utils/rect.c b/libfreerdp/utils/rect.c similarity index 97% rename from libfreerdp-utils/rect.c rename to libfreerdp/utils/rect.c index 08cdea7fd..e8ee55d91 100644 --- a/libfreerdp-utils/rect.c +++ b/libfreerdp/utils/rect.c @@ -17,6 +17,10 @@ * limitations under the License. */ +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + #include #include diff --git a/libfreerdp-utils/semaphore.c b/libfreerdp/utils/semaphore.c similarity index 97% rename from libfreerdp-utils/semaphore.c rename to libfreerdp/utils/semaphore.c index 9cd87c422..75bb1a57a 100644 --- a/libfreerdp-utils/semaphore.c +++ b/libfreerdp/utils/semaphore.c @@ -17,7 +17,12 @@ * limitations under the License. */ +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + #include + #include #include diff --git a/libfreerdp-utils/signal.c b/libfreerdp/utils/signal.c similarity index 98% rename from libfreerdp-utils/signal.c rename to libfreerdp/utils/signal.c index 5889a3d1f..3ce1b277a 100644 --- a/libfreerdp-utils/signal.c +++ b/libfreerdp/utils/signal.c @@ -17,6 +17,10 @@ * limitations under the License. */ +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + #include #include #include diff --git a/libfreerdp-utils/sleep.c b/libfreerdp/utils/sleep.c similarity index 96% rename from libfreerdp-utils/sleep.c rename to libfreerdp/utils/sleep.c index 830cad615..fe7deb21e 100644 --- a/libfreerdp-utils/sleep.c +++ b/libfreerdp/utils/sleep.c @@ -17,7 +17,12 @@ * limitations under the License. */ +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + #include + #include #include diff --git a/libfreerdp-utils/stopwatch.c b/libfreerdp/utils/stopwatch.c similarity index 97% rename from libfreerdp-utils/stopwatch.c rename to libfreerdp/utils/stopwatch.c index daf164112..f2cad8f6d 100644 --- a/libfreerdp-utils/stopwatch.c +++ b/libfreerdp/utils/stopwatch.c @@ -17,6 +17,10 @@ * limitations under the License. */ +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + #include STOPWATCH* stopwatch_create() diff --git a/libfreerdp-utils/stream.c b/libfreerdp/utils/stream.c similarity index 98% rename from libfreerdp-utils/stream.c rename to libfreerdp/utils/stream.c index 834214942..534aa2e8c 100644 --- a/libfreerdp-utils/stream.c +++ b/libfreerdp/utils/stream.c @@ -17,6 +17,10 @@ * limitations under the License. */ +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + #include #include #include diff --git a/libfreerdp-utils/string.c b/libfreerdp/utils/string.c similarity index 96% rename from libfreerdp-utils/string.c rename to libfreerdp/utils/string.c index c3b2a3ab3..9b0c30106 100644 --- a/libfreerdp-utils/string.c +++ b/libfreerdp/utils/string.c @@ -17,6 +17,10 @@ * limitations under the License. */ +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + #include #include diff --git a/libfreerdp-utils/svc_plugin.c b/libfreerdp/utils/svc_plugin.c similarity index 99% rename from libfreerdp-utils/svc_plugin.c rename to libfreerdp/utils/svc_plugin.c index ac19ed824..c7fdc7390 100644 --- a/libfreerdp-utils/svc_plugin.c +++ b/libfreerdp/utils/svc_plugin.c @@ -18,10 +18,14 @@ * limitations under the License. */ +#ifdef HAVE_CONFIG_H #include "config.h" +#endif + #include #include #include + #include #include #include diff --git a/libfreerdp-utils/tcp.c b/libfreerdp/utils/tcp.c similarity index 98% rename from libfreerdp-utils/tcp.c rename to libfreerdp/utils/tcp.c index 82f8c8b4c..b81cb7019 100644 --- a/libfreerdp-utils/tcp.c +++ b/libfreerdp/utils/tcp.c @@ -17,12 +17,17 @@ * limitations under the License. */ +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + #include #include #include #include #include + #include #include #include diff --git a/libfreerdp-utils/thread.c b/libfreerdp/utils/thread.c similarity index 97% rename from libfreerdp-utils/thread.c rename to libfreerdp/utils/thread.c index d25125917..5b8783a0c 100644 --- a/libfreerdp-utils/thread.c +++ b/libfreerdp/utils/thread.c @@ -17,6 +17,10 @@ * limitations under the License. */ +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + #include #include #include diff --git a/libfreerdp-utils/time.c b/libfreerdp/utils/time.c similarity index 97% rename from libfreerdp-utils/time.c rename to libfreerdp/utils/time.c index fbcf46971..6f500a7c6 100644 --- a/libfreerdp-utils/time.c +++ b/libfreerdp/utils/time.c @@ -17,7 +17,12 @@ * limitations under the License. */ +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + #include + #include uint64 freerdp_windows_gmtime() diff --git a/libfreerdp-utils/uds.c b/libfreerdp/utils/uds.c similarity index 96% rename from libfreerdp-utils/uds.c rename to libfreerdp/utils/uds.c index 46c527e67..ff44f243c 100644 --- a/libfreerdp-utils/uds.c +++ b/libfreerdp/utils/uds.c @@ -17,6 +17,10 @@ * limitations under the License. */ +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + #include #include diff --git a/libfreerdp-utils/unicode.c b/libfreerdp/utils/unicode.c similarity index 99% rename from libfreerdp-utils/unicode.c rename to libfreerdp/utils/unicode.c index 92f98b5b2..3b84af97c 100644 --- a/libfreerdp-utils/unicode.c +++ b/libfreerdp/utils/unicode.c @@ -17,6 +17,10 @@ * limitations under the License. */ +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + #include #include #include diff --git a/libfreerdp-utils/wait_obj.c b/libfreerdp/utils/wait_obj.c similarity index 99% rename from libfreerdp-utils/wait_obj.c rename to libfreerdp/utils/wait_obj.c index d73a5c2ba..ac4f1c021 100644 --- a/libfreerdp-utils/wait_obj.c +++ b/libfreerdp/utils/wait_obj.c @@ -17,12 +17,16 @@ * limitations under the License. */ +#ifdef HAVE_CONFIG_H #include "config.h" +#endif #include #include #include + #include + #include #include diff --git a/server/Windows/CMakeLists.txt b/server/Windows/CMakeLists.txt index 7e761e8dc..334b65a0b 100644 --- a/server/Windows/CMakeLists.txt +++ b/server/Windows/CMakeLists.txt @@ -25,7 +25,13 @@ add_executable(wfreerdp-server wfreerdp.c wfreerdp.h) -target_link_libraries(wfreerdp-server freerdp-core) -target_link_libraries(wfreerdp-server freerdp-utils) -target_link_libraries(wfreerdp-server freerdp-codec) -target_link_libraries(wfreerdp-server freerdp-channels) +if(WITH_MONOLITHIC_BUILD) + target_link_libraries(wfreerdp-server freerdp) +else() + target_link_libraries(wfreerdp-server + freerdp-core + freerdp-utils + freerdp-codec + freerdp-channels) +endif() + diff --git a/server/Windows/wf_input.c b/server/Windows/wf_input.c index 94bdc23e7..6c28a93cd 100644 --- a/server/Windows/wf_input.c +++ b/server/Windows/wf_input.c @@ -17,6 +17,10 @@ * limitations under the License. */ +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + #include #include "wf_input.h" diff --git a/server/Windows/wf_peer.c b/server/Windows/wf_peer.c index 66f6892de..56273b3d9 100644 --- a/server/Windows/wf_peer.c +++ b/server/Windows/wf_peer.c @@ -17,6 +17,10 @@ * limitations under the License. */ +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + #include #include "wf_peer.h" diff --git a/server/Windows/wfreerdp.c b/server/Windows/wfreerdp.c index fcf6ed98a..f793bc8f8 100644 --- a/server/Windows/wfreerdp.c +++ b/server/Windows/wfreerdp.c @@ -17,6 +17,10 @@ * limitations under the License. */ +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + #include #include #include diff --git a/server/X11/CMakeLists.txt b/server/X11/CMakeLists.txt index 11a4202f3..be56d64bc 100644 --- a/server/X11/CMakeLists.txt +++ b/server/X11/CMakeLists.txt @@ -60,11 +60,18 @@ if(WITH_XTEST) target_link_libraries(xfreerdp-server ${XTEST_LIBRARIES}) endif() -target_link_libraries(xfreerdp-server freerdp-core) -target_link_libraries(xfreerdp-server freerdp-codec) -target_link_libraries(xfreerdp-server freerdp-utils) -target_link_libraries(xfreerdp-server freerdp-gdi) -target_link_libraries(xfreerdp-server freerdp-crypto) -target_link_libraries(xfreerdp-server freerdp-locale) +if(WITH_MONOLITHIC_BUILD) + target_link_libraries(xfreerdp-server freerdp) + target_link_libraries(xfreerdp-server winpr) +else() + target_link_libraries(xfreerdp-server + freerdp-core + freerdp-codec + freerdp-utils + freerdp-gdi + freerdp-crypto + freerdp-locale) + target_link_libraries(xfreerdp-server winpr-sspi) +endif() + target_link_libraries(xfreerdp-server ${X11_LIBRARIES}) -target_link_libraries(xfreerdp-server winpr-sspi) diff --git a/server/X11/xf_encode.c b/server/X11/xf_encode.c index 80f6bd3b7..5a941ceb6 100644 --- a/server/X11/xf_encode.c +++ b/server/X11/xf_encode.c @@ -17,6 +17,10 @@ * limitations under the License. */ +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + #include #include diff --git a/server/X11/xf_event.c b/server/X11/xf_event.c index d361a5c10..1a3780792 100644 --- a/server/X11/xf_event.c +++ b/server/X11/xf_event.c @@ -17,12 +17,17 @@ * limitations under the License. */ +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + #include #include #include #include #include #include + #include #include "xf_event.h" diff --git a/server/X11/xf_input.c b/server/X11/xf_input.c index 169c20e49..9d56ab224 100644 --- a/server/X11/xf_input.c +++ b/server/X11/xf_input.c @@ -17,7 +17,12 @@ * limitations under the License. */ +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + #include + #include #include "xf_input.h" diff --git a/server/X11/xf_peer.c b/server/X11/xf_peer.c index 7cf58b19b..e20c11938 100644 --- a/server/X11/xf_peer.c +++ b/server/X11/xf_peer.c @@ -17,6 +17,10 @@ * limitations under the License. */ +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + #include #include #include @@ -27,6 +31,7 @@ #include #include #include + #include #include #include diff --git a/server/X11/xfreerdp.c b/server/X11/xfreerdp.c index b8dd6a0d2..379209760 100644 --- a/server/X11/xfreerdp.c +++ b/server/X11/xfreerdp.c @@ -17,6 +17,10 @@ * limitations under the License. */ +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + #include #include #include diff --git a/server/channels/CMakeLists.txt b/server/channels/CMakeLists.txt index b4cd4cb4f..2ee9473e5 100644 --- a/server/channels/CMakeLists.txt +++ b/server/channels/CMakeLists.txt @@ -19,13 +19,16 @@ set(FREERDP_SERVER_CHANNELS_SRCS audin.c - rdpsnd.c -) + rdpsnd.c) add_library(freerdp-server-channels ${FREERDP_SERVER_CHANNELS_SRCS}) set_target_properties(freerdp-server-channels PROPERTIES VERSION ${FREERDP_VERSION_FULL} SOVERSION ${FREERDP_VERSION} PREFIX "lib") -target_link_libraries(freerdp-server-channels freerdp-channels freerdp-utils) + +if(WITH_MONOLITHIC_BUILD) + target_link_libraries(freerdp-server-channels freerdp) +else() + target_link_libraries(freerdp-server-channels freerdp-channels freerdp-utils) +endif() install(TARGETS freerdp-server-channels DESTINATION ${CMAKE_INSTALL_LIBDIR}) - diff --git a/server/channels/audin.c b/server/channels/audin.c index 587b99f0a..3f51f0a2b 100644 --- a/server/channels/audin.c +++ b/server/channels/audin.c @@ -17,6 +17,14 @@ * limitations under the License. */ +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + +#include +#include +#include + #include #include #include @@ -25,10 +33,6 @@ #include #include -#include -#include -#include - #define MSG_SNDIN_VERSION 0x01 #define MSG_SNDIN_FORMATS 0x02 #define MSG_SNDIN_OPEN 0x03 @@ -299,16 +303,20 @@ static void* audin_server_thread_func(void* arg) while (ready) { freerdp_thread_wait(thread); + if (freerdp_thread_is_stopped(thread)) break; stream_set_pos(s, 0); + if (WTSVirtualChannelRead(audin->audin_channel, 0, stream_get_head(s), stream_get_size(s), &bytes_returned) == false) { if (bytes_returned == 0) break; - stream_check_size(s, bytes_returned); + + stream_check_size(s, (int) bytes_returned); + if (WTSVirtualChannelRead(audin->audin_channel, 0, stream_get_head(s), stream_get_size(s), &bytes_returned) == false) break; diff --git a/server/channels/rdpsnd.c b/server/channels/rdpsnd.c index a18e76916..61a080a20 100644 --- a/server/channels/rdpsnd.c +++ b/server/channels/rdpsnd.c @@ -17,6 +17,14 @@ * limitations under the License. */ +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + +#include +#include +#include + #include #include #include @@ -25,10 +33,6 @@ #include #include -#include -#include -#include - typedef struct _rdpsnd_server { rdpsnd_server_context context; @@ -121,6 +125,7 @@ static boolean rdpsnd_server_recv_formats(rdpsnd_server* rdpsnd, STREAM* s) if (rdpsnd->context.num_client_formats > 0) { rdpsnd->context.client_formats = xzalloc(rdpsnd->context.num_client_formats * sizeof(rdpsndFormat)); + for (i = 0; i < rdpsnd->context.num_client_formats; i++) { if (stream_get_left(s) < 18) @@ -137,6 +142,7 @@ static boolean rdpsnd_server_recv_formats(rdpsnd_server* rdpsnd, STREAM* s) stream_read_uint16(s, rdpsnd->context.client_formats[i].nBlockAlign); stream_read_uint16(s, rdpsnd->context.client_formats[i].wBitsPerSample); stream_read_uint16(s, rdpsnd->context.client_formats[i].cbSize); + if (rdpsnd->context.client_formats[i].cbSize > 0) { stream_seek(s, rdpsnd->context.client_formats[i].cbSize); @@ -147,8 +153,6 @@ static boolean rdpsnd_server_recv_formats(rdpsnd_server* rdpsnd, STREAM* s) return true; } - - static void* rdpsnd_server_thread_func(void* arg) { void* fd; @@ -174,16 +178,20 @@ static void* rdpsnd_server_thread_func(void* arg) while (1) { freerdp_thread_wait(thread); + if (freerdp_thread_is_stopped(thread)) break; stream_set_pos(s, 0); + if (WTSVirtualChannelRead(rdpsnd->rdpsnd_channel, 0, stream_get_head(s), stream_get_size(s), &bytes_returned) == false) { if (bytes_returned == 0) break; - stream_check_size(s, bytes_returned); + + stream_check_size(s, (int) bytes_returned); + if (WTSVirtualChannelRead(rdpsnd->rdpsnd_channel, 0, stream_get_head(s), stream_get_size(s), &bytes_returned) == false) break; @@ -192,10 +200,12 @@ static void* rdpsnd_server_thread_func(void* arg) stream_read_uint8(s, msgType); stream_seek_uint8(s); /* bPad */ stream_read_uint16(s, BodySize); - if (BodySize + 4 > bytes_returned) + + if (BodySize + 4 > (int) bytes_returned) continue; - switch (msgType) { + switch (msgType) + { case SNDC_FORMATS: if (rdpsnd_server_recv_formats(rdpsnd, s)) { @@ -218,6 +228,7 @@ static boolean rdpsnd_server_initialize(rdpsnd_server_context* context) rdpsnd_server* rdpsnd = (rdpsnd_server*) context; rdpsnd->rdpsnd_channel = WTSVirtualChannelOpenEx(context->vcm, "rdpsnd", 0); + if (rdpsnd->rdpsnd_channel != NULL) { rdpsnd->rdpsnd_pdu = stream_new(4096); @@ -250,6 +261,7 @@ static void rdpsnd_server_select_format(rdpsnd_server_context* context, int clie context->selected_client_format = client_format_index; format = &context->client_formats[client_format_index]; + if (format->wFormatTag == 0x11) { bs = (format->nBlockAlign - 4 * format->nChannels) * 4; @@ -264,6 +276,7 @@ static void rdpsnd_server_select_format(rdpsnd_server_context* context, int clie { rdpsnd->out_frames = 0x4000 / rdpsnd->src_bytes_per_frame; } + if (format->nSamplesPerSec != context->src_format.nSamplesPerSec) { rdpsnd->out_frames = (rdpsnd->out_frames * context->src_format.nSamplesPerSec + format->nSamplesPerSec - 100) / format->nSamplesPerSec; @@ -271,6 +284,7 @@ static void rdpsnd_server_select_format(rdpsnd_server_context* context, int clie rdpsnd->out_pending_frames = 0; out_buffer_size = rdpsnd->out_frames * rdpsnd->src_bytes_per_frame; + if (rdpsnd->out_buffer_size < out_buffer_size) { rdpsnd->out_buffer = xrealloc(rdpsnd->out_buffer, out_buffer_size); diff --git a/server/test/CMakeLists.txt b/server/test/CMakeLists.txt index 368d4d976..fbf0d72ce 100644 --- a/server/test/CMakeLists.txt +++ b/server/test/CMakeLists.txt @@ -20,8 +20,15 @@ add_executable(tfreerdp-server tfreerdp.c) -target_link_libraries(tfreerdp-server freerdp-core) -target_link_libraries(tfreerdp-server freerdp-utils) -target_link_libraries(tfreerdp-server freerdp-codec) -target_link_libraries(tfreerdp-server freerdp-channels) -target_link_libraries(tfreerdp-server freerdp-server-channels) +if(WITH_MONOLITHIC_BUILD) + target_link_libraries(tfreerdp-server + freerdp + freerdp-server-channels) +else() + target_link_libraries(tfreerdp-server + freerdp-core + freerdp-utils + freerdp-codec + freerdp-channels + freerdp-server-channels) +endif() diff --git a/server/test/tfreerdp.c b/server/test/tfreerdp.c index 3f6771496..d3052ccc7 100644 --- a/server/test/tfreerdp.c +++ b/server/test/tfreerdp.c @@ -18,6 +18,10 @@ * limitations under the License. */ +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + #include #include #include @@ -25,6 +29,7 @@ #include #include #include + #include #include #include diff --git a/winpr/CMakeLists.txt b/winpr/CMakeLists.txt index 6e5cdd9fa..4ad76b33d 100644 --- a/winpr/CMakeLists.txt +++ b/winpr/CMakeLists.txt @@ -1,9 +1,7 @@ # WinPR: Windows Portable Runtime # winpr cmake build script # -# Copyright 2011 O.S. Systems Software Ltda. -# Copyright 2011 Otavio Salvador -# Copyright 2011 Marc-Andre Moreau +# Copyright 2012 Marc-Andre Moreau # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -17,26 +15,13 @@ # See the License for the specific language governing permissions and # limitations under the License. -if (APPLE) - # flat_namespace should be avoided, but is required for -undefined warning. Since WinPR currently has - # a lot of undefined symbols in use, use this hack until they're filled out. - set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} -Wl,-flat_namespace,-undefined,warning") -endif() +include_directories(${CMAKE_CURRENT_SOURCE_DIR}/include PARENT_SCOPE) -add_subdirectory(crt) -add_subdirectory(utils) -add_subdirectory(heap) -add_subdirectory(handle) -add_subdirectory(synch) -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) +configure_file(${CMAKE_CURRENT_SOURCE_DIR}/include/winpr/config.h.in ${CMAKE_CURRENT_SOURCE_DIR}/include/winpr/config.h) + +add_subdirectory(include) + +add_subdirectory(libwinpr) add_subdirectory(tools) diff --git a/winpr/include/CMakeLists.txt b/winpr/include/CMakeLists.txt new file mode 100644 index 000000000..fec1ede14 --- /dev/null +++ b/winpr/include/CMakeLists.txt @@ -0,0 +1,19 @@ +# WinPR: Windows Portable Runtime +# winpr cmake build script +# +# Copyright 2012 Marc-Andre Moreau +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +file(GLOB WINPR_HEADERS "winpr/*.h") +install(FILES ${WINPR_HEADERS} DESTINATION include/winpr) diff --git a/include/winpr/asn1.h b/winpr/include/winpr/asn1.h similarity index 100% rename from include/winpr/asn1.h rename to winpr/include/winpr/asn1.h diff --git a/include/winpr/bcrypt.h b/winpr/include/winpr/bcrypt.h similarity index 100% rename from include/winpr/bcrypt.h rename to winpr/include/winpr/bcrypt.h diff --git a/winpr/include/winpr/config.h.in b/winpr/include/winpr/config.h.in new file mode 100644 index 000000000..5cd3bc731 --- /dev/null +++ b/winpr/include/winpr/config.h.in @@ -0,0 +1,32 @@ +/** + * WinPR: Windows Portable Runtime + * config.h definitions for installable headers + * + * Copyright 2012 Marc-Andre Moreau + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#ifndef WINPR_CONFIG_H +#define WINPR_CONFIG_H + +/* + * This generated config.h header is meant for installation, which is why + * all definitions MUST be prefixed to avoid conflicting with third-party + * libraries. Only add configurable definitions which really must be used + * from installable headers, such as the base type definition types. + */ + +#cmakedefine WITH_NATIVE_SSPI + +#endif /* WINPR_CONFIG_H */ diff --git a/include/winpr/crt.h b/winpr/include/winpr/crt.h similarity index 100% rename from include/winpr/crt.h rename to winpr/include/winpr/crt.h diff --git a/include/winpr/dsparse.h b/winpr/include/winpr/dsparse.h similarity index 100% rename from include/winpr/dsparse.h rename to winpr/include/winpr/dsparse.h diff --git a/include/winpr/handle.h b/winpr/include/winpr/handle.h similarity index 100% rename from include/winpr/handle.h rename to winpr/include/winpr/handle.h diff --git a/include/winpr/heap.h b/winpr/include/winpr/heap.h similarity index 100% rename from include/winpr/heap.h rename to winpr/include/winpr/heap.h diff --git a/include/winpr/library.h b/winpr/include/winpr/library.h similarity index 100% rename from include/winpr/library.h rename to winpr/include/winpr/library.h diff --git a/include/winpr/memory.h b/winpr/include/winpr/memory.h similarity index 100% rename from include/winpr/memory.h rename to winpr/include/winpr/memory.h diff --git a/include/winpr/midl.h b/winpr/include/winpr/midl.h similarity index 100% rename from include/winpr/midl.h rename to winpr/include/winpr/midl.h diff --git a/include/winpr/ndr.h b/winpr/include/winpr/ndr.h similarity index 100% rename from include/winpr/ndr.h rename to winpr/include/winpr/ndr.h diff --git a/include/winpr/ntlm.h b/winpr/include/winpr/ntlm.h similarity index 100% rename from include/winpr/ntlm.h rename to winpr/include/winpr/ntlm.h diff --git a/include/winpr/print.h b/winpr/include/winpr/print.h similarity index 100% rename from include/winpr/print.h rename to winpr/include/winpr/print.h diff --git a/include/winpr/registry.h b/winpr/include/winpr/registry.h similarity index 100% rename from include/winpr/registry.h rename to winpr/include/winpr/registry.h diff --git a/include/winpr/rpc.h b/winpr/include/winpr/rpc.h similarity index 100% rename from include/winpr/rpc.h rename to winpr/include/winpr/rpc.h diff --git a/include/winpr/sam.h b/winpr/include/winpr/sam.h similarity index 100% rename from include/winpr/sam.h rename to winpr/include/winpr/sam.h diff --git a/include/winpr/security.h b/winpr/include/winpr/security.h similarity index 100% rename from include/winpr/security.h rename to winpr/include/winpr/security.h diff --git a/include/winpr/sspi.h b/winpr/include/winpr/sspi.h similarity index 99% rename from include/winpr/sspi.h rename to winpr/include/winpr/sspi.h index e6d94af81..0c4bd9fb2 100644 --- a/include/winpr/sspi.h +++ b/winpr/include/winpr/sspi.h @@ -20,7 +20,7 @@ #ifndef WINPR_SSPI_H #define WINPR_SSPI_H -#include "config.h" +#include #include #include diff --git a/include/winpr/sspicli.h b/winpr/include/winpr/sspicli.h similarity index 100% rename from include/winpr/sspicli.h rename to winpr/include/winpr/sspicli.h diff --git a/include/winpr/stream.h b/winpr/include/winpr/stream.h similarity index 100% rename from include/winpr/stream.h rename to winpr/include/winpr/stream.h diff --git a/include/winpr/string.h b/winpr/include/winpr/string.h similarity index 100% rename from include/winpr/string.h rename to winpr/include/winpr/string.h diff --git a/include/winpr/synch.h b/winpr/include/winpr/synch.h similarity index 100% rename from include/winpr/synch.h rename to winpr/include/winpr/synch.h diff --git a/include/winpr/sysinfo.h b/winpr/include/winpr/sysinfo.h similarity index 100% rename from include/winpr/sysinfo.h rename to winpr/include/winpr/sysinfo.h diff --git a/include/winpr/tchar.h b/winpr/include/winpr/tchar.h similarity index 100% rename from include/winpr/tchar.h rename to winpr/include/winpr/tchar.h diff --git a/include/winpr/windows.h b/winpr/include/winpr/windows.h similarity index 100% rename from include/winpr/windows.h rename to winpr/include/winpr/windows.h diff --git a/include/winpr/winpr.h b/winpr/include/winpr/winpr.h similarity index 98% rename from include/winpr/winpr.h rename to winpr/include/winpr/winpr.h index 479b19b6e..28dc8f465 100644 --- a/include/winpr/winpr.h +++ b/winpr/include/winpr/winpr.h @@ -19,8 +19,6 @@ #ifndef WINPR_H #define WINPR_H -#include "config.h" - #if defined _WIN32 || defined __CYGWIN__ #ifdef WINPR_EXPORTS #ifdef __GNUC__ diff --git a/include/winpr/wtypes.h b/winpr/include/winpr/wtypes.h similarity index 100% rename from include/winpr/wtypes.h rename to winpr/include/winpr/wtypes.h diff --git a/winpr/libwinpr/CMakeLists.txt b/winpr/libwinpr/CMakeLists.txt new file mode 100644 index 000000000..c3b03afa2 --- /dev/null +++ b/winpr/libwinpr/CMakeLists.txt @@ -0,0 +1,65 @@ +# WinPR: Windows Portable Runtime +# winpr cmake build script +# +# Copyright 2012 Marc-Andre Moreau +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +if (APPLE) + # flat_namespace should be avoided, but is required for -undefined warning. Since WinPR currently has + # a lot of undefined symbols in use, use this hack until they're filled out. + set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} -Wl,-flat_namespace,-undefined,warning") +endif() + +if(WITH_MONOLITHIC_BUILD) + set(CMAKE_POSITION_INDEPENDENT_CODE ON) +endif() + +add_subdirectory(crt) +add_subdirectory(utils) +add_subdirectory(heap) +add_subdirectory(handle) +add_subdirectory(synch) +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) + +if(WITH_MONOLITHIC_BUILD) + add_library(winpr + $ + $ + $ + $ + $ + $ + $ + $ + $ + $ + $ + $ + $ + $) + + set_target_properties(winpr PROPERTIES VERSION ${FREERDP_VERSION_FULL} SOVERSION ${FREERDP_VERSION} PREFIX "lib") + + target_link_libraries(winpr ${WINPR_LIBS}) + install(TARGETS winpr DESTINATION ${CMAKE_INSTALL_LIBDIR}) +endif() + diff --git a/winpr/asn1/CMakeLists.txt b/winpr/libwinpr/asn1/CMakeLists.txt similarity index 79% rename from winpr/asn1/CMakeLists.txt rename to winpr/libwinpr/asn1/CMakeLists.txt index 09822861e..94eb5ea97 100644 --- a/winpr/asn1/CMakeLists.txt +++ b/winpr/libwinpr/asn1/CMakeLists.txt @@ -20,9 +20,16 @@ set(WINPR_ASN1_SRCS asn1.c) -add_library(winpr-asn1 ${WINPR_ASN1_SRCS}) +if(WITH_MONOLITHIC_BUILD) + add_library(winpr-asn1 OBJECT ${WINPR_ASN1_SRCS}) +else() + add_library(winpr-asn1 ${WINPR_ASN1_SRCS}) +endif() set_target_properties(winpr-asn1 PROPERTIES VERSION ${FREERDP_VERSION_FULL} SOVERSION ${FREERDP_VERSION} PREFIX "lib") -install(TARGETS winpr-asn1 DESTINATION ${CMAKE_INSTALL_LIBDIR}) - +if(WITH_MONOLITHIC_BUILD) + +else() + install(TARGETS winpr-asn1 DESTINATION ${CMAKE_INSTALL_LIBDIR}) +endif() diff --git a/winpr/asn1/asn1.c b/winpr/libwinpr/asn1/asn1.c similarity index 96% rename from winpr/asn1/asn1.c rename to winpr/libwinpr/asn1/asn1.c index 765e1a7b5..ee11192f3 100644 --- a/winpr/asn1/asn1.c +++ b/winpr/libwinpr/asn1/asn1.c @@ -17,6 +17,10 @@ * limitations under the License. */ +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + #include #include @@ -299,4 +303,14 @@ ASN1error_e ASN1DecSetError(ASN1decoding_t dec, ASN1error_e err) return status; } +void ASN1_FreeEncoded(ASN1encoding_t pEncoderInfo, void* pBuf) +{ + return; +} + +void ASN1_FreeDecoded(ASN1decoding_t pDecoderInfo, void* pDataStruct, ASN1uint32_t nPduNum) +{ + return; +} + #endif diff --git a/winpr/bcrypt/CMakeLists.txt b/winpr/libwinpr/bcrypt/CMakeLists.txt similarity index 65% rename from winpr/bcrypt/CMakeLists.txt rename to winpr/libwinpr/bcrypt/CMakeLists.txt index 4f9db8e7d..1b2b8a086 100644 --- a/winpr/bcrypt/CMakeLists.txt +++ b/winpr/libwinpr/bcrypt/CMakeLists.txt @@ -20,19 +20,29 @@ set(WINPR_BCRYPT_SRCS bcrypt.c) -add_library(winpr-bcrypt ${WINPR_BCRYPT_SRCS}) +if(WITH_MONOLITHIC_BUILD) + add_library(winpr-bcrypt OBJECT ${WINPR_BCRYPT_SRCS}) +else() + add_library(winpr-bcrypt ${WINPR_BCRYPT_SRCS}) +endif() include_directories(${OPENSSL_INCLUDE_DIR}) include_directories(${ZLIB_INCLUDE_DIRS}) set_target_properties(winpr-bcrypt PROPERTIES VERSION ${FREERDP_VERSION_FULL} SOVERSION ${FREERDP_VERSION} PREFIX "lib") -if (NOT WIN32) - target_link_libraries(winpr-bcrypt winpr-crt) +set(WINPR_BCRYPT_LIBS + ${ZLIB_LIBRARIES}) + +if(WITH_MONOLITHIC_BUILD) + set(WINPR_LIBS ${WINPR_LIBS} ${WINPR_BCRYPT_LIBS} PARENT_SCOPE) +else() + if(NOT WIN32) + set(WINPR_BCRYPT_LIBS ${WINPR_BCRYPT_LIBS} winpr-crt) + endif() + + set(WINPR_BCRYPT_LIBS ${WINPR_BCRYPT_LIBS} winpr-utils) + + target_link_libraries(winpr-bcrypt ${WINPR_BCRYPT_LIBS}) + install(TARGETS winpr-bcrypt DESTINATION ${CMAKE_INSTALL_LIBDIR}) endif() - -target_link_libraries(winpr-bcrypt winpr-utils) -target_link_libraries(winpr-bcrypt ${ZLIB_LIBRARIES}) - -install(TARGETS winpr-bcrypt DESTINATION ${CMAKE_INSTALL_LIBDIR}) - diff --git a/winpr/bcrypt/bcrypt.c b/winpr/libwinpr/bcrypt/bcrypt.c similarity index 98% rename from winpr/bcrypt/bcrypt.c rename to winpr/libwinpr/bcrypt/bcrypt.c index 08b9e205f..63840e850 100644 --- a/winpr/bcrypt/bcrypt.c +++ b/winpr/libwinpr/bcrypt/bcrypt.c @@ -17,6 +17,10 @@ * limitations under the License. */ +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + #include /** diff --git a/winpr/crt/CMakeLists.txt b/winpr/libwinpr/crt/CMakeLists.txt similarity index 79% rename from winpr/crt/CMakeLists.txt rename to winpr/libwinpr/crt/CMakeLists.txt index a4a35ac37..7dfb7f90c 100644 --- a/winpr/crt/CMakeLists.txt +++ b/winpr/libwinpr/crt/CMakeLists.txt @@ -21,9 +21,16 @@ set(WINPR_CRT_SRCS memory.c string.c) -add_library(winpr-crt ${WINPR_CRT_SRCS}) +if(WITH_MONOLITHIC_BUILD) + add_library(winpr-crt OBJECT ${WINPR_CRT_SRCS}) +else() + add_library(winpr-crt ${WINPR_CRT_SRCS}) +endif() set_target_properties(winpr-crt PROPERTIES VERSION ${FREERDP_VERSION_FULL} SOVERSION ${FREERDP_VERSION} PREFIX "lib") -install(TARGETS winpr-crt DESTINATION ${CMAKE_INSTALL_LIBDIR}) +if(WITH_MONOLITHIC_BUILD) +else() + install(TARGETS winpr-crt DESTINATION ${CMAKE_INSTALL_LIBDIR}) +endif() diff --git a/winpr/crt/memory.c b/winpr/libwinpr/crt/memory.c similarity index 94% rename from winpr/crt/memory.c rename to winpr/libwinpr/crt/memory.c index 0f9b16f39..39ac0dbe3 100644 --- a/winpr/crt/memory.c +++ b/winpr/libwinpr/crt/memory.c @@ -17,6 +17,10 @@ * limitations under the License. */ +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + #include /* Memory Allocation: http://msdn.microsoft.com/en-us/library/hk1k7x6x.aspx */ diff --git a/winpr/crt/string.c b/winpr/libwinpr/crt/string.c similarity index 99% rename from winpr/crt/string.c rename to winpr/libwinpr/crt/string.c index a8472e80f..307cede6a 100644 --- a/winpr/crt/string.c +++ b/winpr/libwinpr/crt/string.c @@ -17,6 +17,10 @@ * limitations under the License. */ +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + #include #include diff --git a/winpr/dsparse/CMakeLists.txt b/winpr/libwinpr/dsparse/CMakeLists.txt similarity index 78% rename from winpr/dsparse/CMakeLists.txt rename to winpr/libwinpr/dsparse/CMakeLists.txt index 9d4e188d1..b3420b341 100644 --- a/winpr/dsparse/CMakeLists.txt +++ b/winpr/libwinpr/dsparse/CMakeLists.txt @@ -20,9 +20,16 @@ set(WINPR_DSPARSE_SRCS dsparse.c) -add_library(winpr-dsparse ${WINPR_DSPARSE_SRCS}) +if(WITH_MONOLITHIC_BUILD) + add_library(winpr-dsparse OBJECT ${WINPR_DSPARSE_SRCS}) +else() + add_library(winpr-dsparse ${WINPR_DSPARSE_SRCS}) +endif() set_target_properties(winpr-dsparse PROPERTIES VERSION ${FREERDP_VERSION_FULL} SOVERSION ${FREERDP_VERSION} PREFIX "lib") -install(TARGETS winpr-dsparse DESTINATION ${CMAKE_INSTALL_LIBDIR}) +if(WITH_MONOLITHIC_BUILD) +else() + install(TARGETS winpr-dsparse DESTINATION ${CMAKE_INSTALL_LIBDIR}) +endif() diff --git a/winpr/dsparse/dsparse.c b/winpr/libwinpr/dsparse/dsparse.c similarity index 97% rename from winpr/dsparse/dsparse.c rename to winpr/libwinpr/dsparse/dsparse.c index cf4e04926..45ff7ed90 100644 --- a/winpr/dsparse/dsparse.c +++ b/winpr/libwinpr/dsparse/dsparse.c @@ -17,6 +17,10 @@ * limitations under the License. */ +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + #include /** diff --git a/winpr/handle/CMakeLists.txt b/winpr/libwinpr/handle/CMakeLists.txt similarity index 78% rename from winpr/handle/CMakeLists.txt rename to winpr/libwinpr/handle/CMakeLists.txt index 16edeb710..228e846ac 100644 --- a/winpr/handle/CMakeLists.txt +++ b/winpr/libwinpr/handle/CMakeLists.txt @@ -20,9 +20,16 @@ set(WINPR_HANDLE_SRCS handle.c) -add_library(winpr-handle ${WINPR_HANDLE_SRCS}) +if(WITH_MONOLITHIC_BUILD) + add_library(winpr-handle OBJECT ${WINPR_HANDLE_SRCS}) +else() + add_library(winpr-handle ${WINPR_HANDLE_SRCS}) +endif() set_target_properties(winpr-handle PROPERTIES VERSION ${FREERDP_VERSION_FULL} SOVERSION ${FREERDP_VERSION} PREFIX "lib") -install(TARGETS winpr-handle DESTINATION ${CMAKE_INSTALL_LIBDIR}) +if(WITH_MONOLITHIC_BUILD) +else() + install(TARGETS winpr-handle DESTINATION ${CMAKE_INSTALL_LIBDIR}) +endif() diff --git a/winpr/handle/handle.c b/winpr/libwinpr/handle/handle.c similarity index 96% rename from winpr/handle/handle.c rename to winpr/libwinpr/handle/handle.c index 23ac25566..6f9f9c742 100644 --- a/winpr/handle/handle.c +++ b/winpr/libwinpr/handle/handle.c @@ -17,6 +17,10 @@ * limitations under the License. */ +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + #include #ifndef _WIN32 diff --git a/winpr/heap/CMakeLists.txt b/winpr/libwinpr/heap/CMakeLists.txt similarity index 79% rename from winpr/heap/CMakeLists.txt rename to winpr/libwinpr/heap/CMakeLists.txt index 4f708b521..3ee0bb22f 100644 --- a/winpr/heap/CMakeLists.txt +++ b/winpr/libwinpr/heap/CMakeLists.txt @@ -20,9 +20,16 @@ set(WINPR_HEAP_SRCS heap.c) -add_library(winpr-heap ${WINPR_HEAP_SRCS}) +if(WITH_MONOLITHIC_BUILD) + add_library(winpr-heap OBJECT ${WINPR_HEAP_SRCS}) +else() + add_library(winpr-heap ${WINPR_HEAP_SRCS}) +endif() set_target_properties(winpr-heap PROPERTIES VERSION ${FREERDP_VERSION_FULL} SOVERSION ${FREERDP_VERSION} PREFIX "lib") -install(TARGETS winpr-heap DESTINATION ${CMAKE_INSTALL_LIBDIR}) +if(WITH_MONOLITHIC_BUILD) +else() + install(TARGETS winpr-heap DESTINATION ${CMAKE_INSTALL_LIBDIR}) +endif() diff --git a/winpr/heap/heap.c b/winpr/libwinpr/heap/heap.c similarity index 96% rename from winpr/heap/heap.c rename to winpr/libwinpr/heap/heap.c index cb859e056..5de8cba21 100644 --- a/winpr/heap/heap.c +++ b/winpr/libwinpr/heap/heap.c @@ -17,6 +17,10 @@ * limitations under the License. */ +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + #include /* Memory Allocation: http://msdn.microsoft.com/en-us/library/hk1k7x6x.aspx */ diff --git a/winpr/library/CMakeLists.txt b/winpr/libwinpr/library/CMakeLists.txt similarity index 78% rename from winpr/library/CMakeLists.txt rename to winpr/libwinpr/library/CMakeLists.txt index db75072fd..1f7808273 100644 --- a/winpr/library/CMakeLists.txt +++ b/winpr/libwinpr/library/CMakeLists.txt @@ -20,9 +20,16 @@ set(WINPR_LIBRARY_SRCS library.c) -add_library(winpr-library ${WINPR_LIBRARY_SRCS}) +if(WITH_MONOLITHIC_BUILD) + add_library(winpr-library OBJECT ${WINPR_LIBRARY_SRCS}) +else() + add_library(winpr-library ${WINPR_LIBRARY_SRCS}) +endif() set_target_properties(winpr-library PROPERTIES VERSION ${FREERDP_VERSION_FULL} SOVERSION ${FREERDP_VERSION} PREFIX "lib") -install(TARGETS winpr-library DESTINATION ${CMAKE_INSTALL_LIBDIR}) +if(WITH_MONOLITHIC_BUILD) +else() + install(TARGETS winpr-library DESTINATION ${CMAKE_INSTALL_LIBDIR}) +endif() diff --git a/winpr/library/library.c b/winpr/libwinpr/library/library.c similarity index 97% rename from winpr/library/library.c rename to winpr/libwinpr/library/library.c index a59fedb65..9688076cc 100644 --- a/winpr/library/library.c +++ b/winpr/libwinpr/library/library.c @@ -17,6 +17,10 @@ * limitations under the License. */ +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + #include /** @@ -57,6 +61,7 @@ #ifndef _WIN32 #include +#include #include HMODULE LoadLibraryA(LPCSTR lpLibFileName) diff --git a/winpr/registry/CMakeLists.txt b/winpr/libwinpr/registry/CMakeLists.txt similarity index 75% rename from winpr/registry/CMakeLists.txt rename to winpr/libwinpr/registry/CMakeLists.txt index cb4b0be76..bec525300 100644 --- a/winpr/registry/CMakeLists.txt +++ b/winpr/libwinpr/registry/CMakeLists.txt @@ -22,11 +22,17 @@ set(WINPR_REGISTRY_SRCS registry_reg.h registry.c) -add_library(winpr-registry ${WINPR_REGISTRY_SRCS}) +if(WITH_MONOLITHIC_BUILD) + add_library(winpr-registry OBJECT ${WINPR_REGISTRY_SRCS}) +else() + add_library(winpr-registry ${WINPR_REGISTRY_SRCS}) +endif() set_target_properties(winpr-registry PROPERTIES VERSION ${FREERDP_VERSION_FULL} SOVERSION ${FREERDP_VERSION} PREFIX "lib") -target_link_libraries(winpr-registry winpr-utils) - -install(TARGETS winpr-registry DESTINATION ${CMAKE_INSTALL_LIBDIR}) +if(WITH_MONOLITHIC_BUILD) +else() + target_link_libraries(winpr-registry winpr-utils) + install(TARGETS winpr-registry DESTINATION ${CMAKE_INSTALL_LIBDIR}) +endif() diff --git a/winpr/registry/registry.c b/winpr/libwinpr/registry/registry.c similarity index 99% rename from winpr/registry/registry.c rename to winpr/libwinpr/registry/registry.c index b1229b0bd..dbc82e849 100644 --- a/winpr/registry/registry.c +++ b/winpr/libwinpr/registry/registry.c @@ -17,6 +17,10 @@ * limitations under the License. */ +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + #include /* diff --git a/winpr/registry/registry_reg.c b/winpr/libwinpr/registry/registry_reg.c similarity index 99% rename from winpr/registry/registry_reg.c rename to winpr/libwinpr/registry/registry_reg.c index 65246d6d6..6082b2a25 100644 --- a/winpr/registry/registry_reg.c +++ b/winpr/libwinpr/registry/registry_reg.c @@ -17,6 +17,10 @@ * limitations under the License. */ +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + #include #include #include diff --git a/winpr/registry/registry_reg.h b/winpr/libwinpr/registry/registry_reg.h similarity index 100% rename from winpr/registry/registry_reg.h rename to winpr/libwinpr/registry/registry_reg.h diff --git a/winpr/rpc/CMakeLists.txt b/winpr/libwinpr/rpc/CMakeLists.txt similarity index 72% rename from winpr/rpc/CMakeLists.txt rename to winpr/libwinpr/rpc/CMakeLists.txt index af607cbae..6e18f2d59 100644 --- a/winpr/rpc/CMakeLists.txt +++ b/winpr/libwinpr/rpc/CMakeLists.txt @@ -31,19 +31,29 @@ set(WINPR_RPC_SRCS ndr_union.c ndr_union.h midl.c) -add_library(winpr-rpc ${WINPR_RPC_SRCS}) +if(WITH_MONOLITHIC_BUILD) + add_library(winpr-rpc OBJECT ${WINPR_RPC_SRCS}) +else() + add_library(winpr-rpc ${WINPR_RPC_SRCS}) +endif() include_directories(${OPENSSL_INCLUDE_DIR}) include_directories(${ZLIB_INCLUDE_DIRS}) set_target_properties(winpr-rpc PROPERTIES VERSION ${FREERDP_VERSION_FULL} SOVERSION ${FREERDP_VERSION} PREFIX "lib") +set(WINPR_RPC_LIBS + ${OPENSSL_LIBRARIES}) + if(WIN32) - target_link_libraries(winpr-rpc ws2_32) + set(WINPR_RPC_LIBS ${WINPR_RPC_LIBS} ws2_32) else() - target_link_libraries(winpr-rpc ${ZLIB_LIBRARIES}) + set(WINPR_RPC_LIBS ${WINPR_RPC_LIBS} ${ZLIB_LIBRARIES}) endif() -target_link_libraries(winpr-rpc ${OPENSSL_LIBRARIES}) - -install(TARGETS winpr-rpc DESTINATION ${CMAKE_INSTALL_LIBDIR}) +if(WITH_MONOLITHIC_BUILD) + set(WINPR_LIBS ${WINPR_LIBS} ${WINPR_RPC_LIBS} PARENT_SCOPE) +else() + target_link_libraries(winpr-rpc ${WINPR_RPC_LIBS}) + install(TARGETS winpr-rpc DESTINATION ${CMAKE_INSTALL_LIBDIR}) +endif() diff --git a/winpr/rpc/midl.c b/winpr/libwinpr/rpc/midl.c similarity index 94% rename from winpr/rpc/midl.c rename to winpr/libwinpr/rpc/midl.c index bdd5bde5e..aab05d549 100644 --- a/winpr/rpc/midl.c +++ b/winpr/libwinpr/rpc/midl.c @@ -17,6 +17,10 @@ * limitations under the License. */ +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + #include #include diff --git a/winpr/rpc/ndr.c b/winpr/libwinpr/rpc/ndr.c similarity index 99% rename from winpr/rpc/ndr.c rename to winpr/libwinpr/rpc/ndr.c index bca80d84a..d90a2a03b 100644 --- a/winpr/rpc/ndr.c +++ b/winpr/libwinpr/rpc/ndr.c @@ -17,6 +17,10 @@ * limitations under the License. */ +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + #include #include #include diff --git a/winpr/rpc/ndr_array.c b/winpr/libwinpr/rpc/ndr_array.c similarity index 98% rename from winpr/rpc/ndr_array.c rename to winpr/libwinpr/rpc/ndr_array.c index 3c800144d..d9c53c5ea 100644 --- a/winpr/rpc/ndr_array.c +++ b/winpr/libwinpr/rpc/ndr_array.c @@ -17,6 +17,10 @@ * limitations under the License. */ +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + #include #include diff --git a/winpr/rpc/ndr_array.h b/winpr/libwinpr/rpc/ndr_array.h similarity index 100% rename from winpr/rpc/ndr_array.h rename to winpr/libwinpr/rpc/ndr_array.h diff --git a/winpr/rpc/ndr_context.c b/winpr/libwinpr/rpc/ndr_context.c similarity index 97% rename from winpr/rpc/ndr_context.c rename to winpr/libwinpr/rpc/ndr_context.c index 270074f95..531840074 100644 --- a/winpr/rpc/ndr_context.c +++ b/winpr/libwinpr/rpc/ndr_context.c @@ -17,6 +17,10 @@ * limitations under the License. */ +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + #include #include diff --git a/winpr/rpc/ndr_context.h b/winpr/libwinpr/rpc/ndr_context.h similarity index 100% rename from winpr/rpc/ndr_context.h rename to winpr/libwinpr/rpc/ndr_context.h diff --git a/winpr/rpc/ndr_correlation.c b/winpr/libwinpr/rpc/ndr_correlation.c similarity index 98% rename from winpr/rpc/ndr_correlation.c rename to winpr/libwinpr/rpc/ndr_correlation.c index 1a9383403..3deb4caca 100644 --- a/winpr/rpc/ndr_correlation.c +++ b/winpr/libwinpr/rpc/ndr_correlation.c @@ -17,6 +17,10 @@ * limitations under the License. */ +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + #include #include diff --git a/winpr/rpc/ndr_correlation.h b/winpr/libwinpr/rpc/ndr_correlation.h similarity index 100% rename from winpr/rpc/ndr_correlation.h rename to winpr/libwinpr/rpc/ndr_correlation.h diff --git a/winpr/rpc/ndr_pointer.c b/winpr/libwinpr/rpc/ndr_pointer.c similarity index 99% rename from winpr/rpc/ndr_pointer.c rename to winpr/libwinpr/rpc/ndr_pointer.c index bec4b4f2e..f140776d3 100644 --- a/winpr/rpc/ndr_pointer.c +++ b/winpr/libwinpr/rpc/ndr_pointer.c @@ -17,6 +17,10 @@ * limitations under the License. */ +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + #include #include diff --git a/winpr/rpc/ndr_pointer.h b/winpr/libwinpr/rpc/ndr_pointer.h similarity index 100% rename from winpr/rpc/ndr_pointer.h rename to winpr/libwinpr/rpc/ndr_pointer.h diff --git a/winpr/rpc/ndr_private.c b/winpr/libwinpr/rpc/ndr_private.c similarity index 99% rename from winpr/rpc/ndr_private.c rename to winpr/libwinpr/rpc/ndr_private.c index 22fc59868..db57de23b 100644 --- a/winpr/rpc/ndr_private.c +++ b/winpr/libwinpr/rpc/ndr_private.c @@ -17,6 +17,10 @@ * limitations under the License. */ +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + #include #include diff --git a/winpr/rpc/ndr_private.h b/winpr/libwinpr/rpc/ndr_private.h similarity index 100% rename from winpr/rpc/ndr_private.h rename to winpr/libwinpr/rpc/ndr_private.h diff --git a/winpr/rpc/ndr_simple.c b/winpr/libwinpr/rpc/ndr_simple.c similarity index 99% rename from winpr/rpc/ndr_simple.c rename to winpr/libwinpr/rpc/ndr_simple.c index 97927f19e..d9492c130 100644 --- a/winpr/rpc/ndr_simple.c +++ b/winpr/libwinpr/rpc/ndr_simple.c @@ -17,6 +17,10 @@ * limitations under the License. */ +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + #include #include diff --git a/winpr/rpc/ndr_simple.h b/winpr/libwinpr/rpc/ndr_simple.h similarity index 100% rename from winpr/rpc/ndr_simple.h rename to winpr/libwinpr/rpc/ndr_simple.h diff --git a/winpr/rpc/ndr_string.c b/winpr/libwinpr/rpc/ndr_string.c similarity index 95% rename from winpr/rpc/ndr_string.c rename to winpr/libwinpr/rpc/ndr_string.c index a52fb9923..e5f022df4 100644 --- a/winpr/rpc/ndr_string.c +++ b/winpr/libwinpr/rpc/ndr_string.c @@ -17,6 +17,10 @@ * limitations under the License. */ +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + #include #include diff --git a/winpr/rpc/ndr_string.h b/winpr/libwinpr/rpc/ndr_string.h similarity index 100% rename from winpr/rpc/ndr_string.h rename to winpr/libwinpr/rpc/ndr_string.h diff --git a/winpr/rpc/ndr_structure.c b/winpr/libwinpr/rpc/ndr_structure.c similarity index 99% rename from winpr/rpc/ndr_structure.c rename to winpr/libwinpr/rpc/ndr_structure.c index d7f3957c2..cf0895c30 100644 --- a/winpr/rpc/ndr_structure.c +++ b/winpr/libwinpr/rpc/ndr_structure.c @@ -17,6 +17,10 @@ * limitations under the License. */ +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + #include #include diff --git a/winpr/rpc/ndr_structure.h b/winpr/libwinpr/rpc/ndr_structure.h similarity index 100% rename from winpr/rpc/ndr_structure.h rename to winpr/libwinpr/rpc/ndr_structure.h diff --git a/winpr/rpc/ndr_union.c b/winpr/libwinpr/rpc/ndr_union.c similarity index 96% rename from winpr/rpc/ndr_union.c rename to winpr/libwinpr/rpc/ndr_union.c index 644ef5831..be4fab3e2 100644 --- a/winpr/rpc/ndr_union.c +++ b/winpr/libwinpr/rpc/ndr_union.c @@ -17,6 +17,10 @@ * limitations under the License. */ +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + #include #include diff --git a/winpr/rpc/ndr_union.h b/winpr/libwinpr/rpc/ndr_union.h similarity index 100% rename from winpr/rpc/ndr_union.h rename to winpr/libwinpr/rpc/ndr_union.h diff --git a/winpr/rpc/rpc.c b/winpr/libwinpr/rpc/rpc.c similarity index 94% rename from winpr/rpc/rpc.c rename to winpr/libwinpr/rpc/rpc.c index c76096627..2987cfb54 100644 --- a/winpr/rpc/rpc.c +++ b/winpr/libwinpr/rpc/rpc.c @@ -17,6 +17,10 @@ * limitations under the License. */ +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + #include #include diff --git a/winpr/sspi/CMakeLists.txt b/winpr/libwinpr/sspi/CMakeLists.txt similarity index 71% rename from winpr/sspi/CMakeLists.txt rename to winpr/libwinpr/sspi/CMakeLists.txt index 4ef5bf41a..88c1b07b0 100644 --- a/winpr/sspi/CMakeLists.txt +++ b/winpr/libwinpr/sspi/CMakeLists.txt @@ -52,22 +52,37 @@ if(NOT WITH_NATIVE_SSPI) ${WINPR_SSPI_SRCS}) endif() -add_library(winpr-sspi ${WINPR_SSPI_SRCS}) +if(WITH_MONOLITHIC_BUILD) + add_library(winpr-sspi OBJECT ${WINPR_SSPI_SRCS}) +else() + add_library(winpr-sspi ${WINPR_SSPI_SRCS}) +endif() include_directories(${ZLIB_INCLUDE_DIRS}) include_directories(${OPENSSL_INCLUDE_DIR}) set_target_properties(winpr-sspi PROPERTIES VERSION ${FREERDP_VERSION_FULL} SOVERSION ${FREERDP_VERSION} PREFIX "lib") -if (NOT WIN32) - target_link_libraries(winpr-sspi winpr-crt) - target_link_libraries(winpr-sspi winpr-sysinfo) - target_link_libraries(winpr-sspi winpr-registry) +set(WINPR_SSPI_LIBS + ${ZLIB_LIBRARIES} + ${OPENSSL_LIBRARIES}) + +if(WITH_MONOLITHIC_BUILD) + set(WINPR_SSPI_LIBS ${WINPR_SSPI_LIBS} winpr) +else() + if (NOT WIN32) + set(WINPR_SSPI_LIBS ${WINPR_SSPI_LIBS} + winpr-crt + winpr-sysinfo + winpr-registry) + endif() + + set(WINPR_SSPI_LIBS ${WINPR_SSPI_LIBS} winpr-utils) endif() -target_link_libraries(winpr-sspi winpr-utils) -target_link_libraries(winpr-sspi ${ZLIB_LIBRARIES}) -target_link_libraries(winpr-sspi ${OPENSSL_LIBRARIES}) - -install(TARGETS winpr-sspi DESTINATION ${CMAKE_INSTALL_LIBDIR}) - +if(WITH_MONOLITHIC_BUILD) + set(WINPR_LIBS ${WINPR_LIBS} ${WINPR_SSPI_LIBS} PARENT_SCOPE) +else() + target_link_libraries(winpr-sspi ${WINPR_SSPI_LIBS}) + install(TARGETS winpr-sspi DESTINATION ${CMAKE_INSTALL_LIBDIR}) +endif() diff --git a/winpr/sspi/CredSSP/credssp.c b/winpr/libwinpr/sspi/CredSSP/credssp.c similarity index 99% rename from winpr/sspi/CredSSP/credssp.c rename to winpr/libwinpr/sspi/CredSSP/credssp.c index e92d53841..3da23e942 100644 --- a/winpr/sspi/CredSSP/credssp.c +++ b/winpr/libwinpr/sspi/CredSSP/credssp.c @@ -17,6 +17,10 @@ * limitations under the License. */ +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + #include #include diff --git a/winpr/sspi/CredSSP/credssp.h b/winpr/libwinpr/sspi/CredSSP/credssp.h similarity index 100% rename from winpr/sspi/CredSSP/credssp.h rename to winpr/libwinpr/sspi/CredSSP/credssp.h diff --git a/winpr/sspi/NTLM/ntlm.c b/winpr/libwinpr/sspi/NTLM/ntlm.c similarity index 99% rename from winpr/sspi/NTLM/ntlm.c rename to winpr/libwinpr/sspi/NTLM/ntlm.c index fdf3194c6..9c5bf4b0c 100644 --- a/winpr/sspi/NTLM/ntlm.c +++ b/winpr/libwinpr/sspi/NTLM/ntlm.c @@ -17,6 +17,10 @@ * limitations under the License. */ +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + #include #include #include diff --git a/winpr/sspi/NTLM/ntlm.h b/winpr/libwinpr/sspi/NTLM/ntlm.h similarity index 100% rename from winpr/sspi/NTLM/ntlm.h rename to winpr/libwinpr/sspi/NTLM/ntlm.h diff --git a/winpr/sspi/NTLM/ntlm_av_pairs.c b/winpr/libwinpr/sspi/NTLM/ntlm_av_pairs.c similarity index 99% rename from winpr/sspi/NTLM/ntlm_av_pairs.c rename to winpr/libwinpr/sspi/NTLM/ntlm_av_pairs.c index 0625e394e..26967621f 100644 --- a/winpr/sspi/NTLM/ntlm_av_pairs.c +++ b/winpr/libwinpr/sspi/NTLM/ntlm_av_pairs.c @@ -17,6 +17,10 @@ * limitations under the License. */ +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + #include "ntlm.h" #include "../sspi.h" diff --git a/winpr/sspi/NTLM/ntlm_av_pairs.h b/winpr/libwinpr/sspi/NTLM/ntlm_av_pairs.h similarity index 100% rename from winpr/sspi/NTLM/ntlm_av_pairs.h rename to winpr/libwinpr/sspi/NTLM/ntlm_av_pairs.h diff --git a/winpr/sspi/NTLM/ntlm_compute.c b/winpr/libwinpr/sspi/NTLM/ntlm_compute.c similarity index 99% rename from winpr/sspi/NTLM/ntlm_compute.c rename to winpr/libwinpr/sspi/NTLM/ntlm_compute.c index 99529e158..3fe05ee58 100644 --- a/winpr/sspi/NTLM/ntlm_compute.c +++ b/winpr/libwinpr/sspi/NTLM/ntlm_compute.c @@ -17,6 +17,10 @@ * limitations under the License. */ +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + #include "ntlm.h" #include "../sspi.h" diff --git a/winpr/sspi/NTLM/ntlm_compute.h b/winpr/libwinpr/sspi/NTLM/ntlm_compute.h similarity index 100% rename from winpr/sspi/NTLM/ntlm_compute.h rename to winpr/libwinpr/sspi/NTLM/ntlm_compute.h diff --git a/winpr/sspi/NTLM/ntlm_message.c b/winpr/libwinpr/sspi/NTLM/ntlm_message.c similarity index 99% rename from winpr/sspi/NTLM/ntlm_message.c rename to winpr/libwinpr/sspi/NTLM/ntlm_message.c index 8f5348d37..28d17f02c 100644 --- a/winpr/sspi/NTLM/ntlm_message.c +++ b/winpr/libwinpr/sspi/NTLM/ntlm_message.c @@ -17,6 +17,10 @@ * limitations under the License. */ +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + #include "ntlm.h" #include "../sspi.h" diff --git a/winpr/sspi/NTLM/ntlm_message.h b/winpr/libwinpr/sspi/NTLM/ntlm_message.h similarity index 100% rename from winpr/sspi/NTLM/ntlm_message.h rename to winpr/libwinpr/sspi/NTLM/ntlm_message.h diff --git a/winpr/sspi/Negotiate/negotiate.c b/winpr/libwinpr/sspi/Negotiate/negotiate.c similarity index 99% rename from winpr/sspi/Negotiate/negotiate.c rename to winpr/libwinpr/sspi/Negotiate/negotiate.c index c8bc191dd..616c647a7 100644 --- a/winpr/sspi/Negotiate/negotiate.c +++ b/winpr/libwinpr/sspi/Negotiate/negotiate.c @@ -17,6 +17,10 @@ * limitations under the License. */ +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + #include #include diff --git a/winpr/sspi/Negotiate/negotiate.h b/winpr/libwinpr/sspi/Negotiate/negotiate.h similarity index 100% rename from winpr/sspi/Negotiate/negotiate.h rename to winpr/libwinpr/sspi/Negotiate/negotiate.h diff --git a/winpr/sspi/Schannel/schannel.c b/winpr/libwinpr/sspi/Schannel/schannel.c similarity index 99% rename from winpr/sspi/Schannel/schannel.c rename to winpr/libwinpr/sspi/Schannel/schannel.c index 2f94c41c2..b6d755379 100644 --- a/winpr/sspi/Schannel/schannel.c +++ b/winpr/libwinpr/sspi/Schannel/schannel.c @@ -17,6 +17,10 @@ * limitations under the License. */ +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + #include #include diff --git a/winpr/sspi/Schannel/schannel.h b/winpr/libwinpr/sspi/Schannel/schannel.h similarity index 100% rename from winpr/sspi/Schannel/schannel.h rename to winpr/libwinpr/sspi/Schannel/schannel.h diff --git a/winpr/sspi/sspi.c b/winpr/libwinpr/sspi/sspi.c similarity index 99% rename from winpr/sspi/sspi.c rename to winpr/libwinpr/sspi/sspi.c index 68b756156..87697460c 100644 --- a/winpr/sspi/sspi.c +++ b/winpr/libwinpr/sspi/sspi.c @@ -17,6 +17,10 @@ * limitations under the License. */ +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + #include #include diff --git a/winpr/sspi/sspi.h b/winpr/libwinpr/sspi/sspi.h similarity index 99% rename from winpr/sspi/sspi.h rename to winpr/libwinpr/sspi/sspi.h index 92a7894d2..b51f72398 100644 --- a/winpr/sspi/sspi.h +++ b/winpr/libwinpr/sspi/sspi.h @@ -20,8 +20,6 @@ #ifndef WINPR_SSPI_PRIVATE_H #define WINPR_SSPI_PRIVATE_H -#include "config.h" - #include struct _CREDENTIALS diff --git a/winpr/sspicli/CMakeLists.txt b/winpr/libwinpr/sspicli/CMakeLists.txt similarity index 78% rename from winpr/sspicli/CMakeLists.txt rename to winpr/libwinpr/sspicli/CMakeLists.txt index b747a9d2f..24487a795 100644 --- a/winpr/sspicli/CMakeLists.txt +++ b/winpr/libwinpr/sspicli/CMakeLists.txt @@ -20,9 +20,16 @@ set(WINPR_SSPICLI_SRCS sspicli.c) -add_library(winpr-sspicli ${WINPR_SSPICLI_SRCS}) +if(WITH_MONOLITHIC_BUILD) + add_library(winpr-sspicli OBJECT ${WINPR_SSPICLI_SRCS}) +else() + add_library(winpr-sspicli ${WINPR_SSPICLI_SRCS}) +endif() set_target_properties(winpr-sspicli PROPERTIES VERSION ${FREERDP_VERSION_FULL} SOVERSION ${FREERDP_VERSION} PREFIX "lib") -install(TARGETS winpr-sspicli DESTINATION ${CMAKE_INSTALL_LIBDIR}) +if(WITH_MONOLITHIC_BUILD) +else() + install(TARGETS winpr-sspicli DESTINATION ${CMAKE_INSTALL_LIBDIR}) +endif() diff --git a/winpr/sspicli/sspicli.c b/winpr/libwinpr/sspicli/sspicli.c similarity index 97% rename from winpr/sspicli/sspicli.c rename to winpr/libwinpr/sspicli/sspicli.c index ef18f7e0c..6a820b2a2 100644 --- a/winpr/sspicli/sspicli.c +++ b/winpr/libwinpr/sspicli/sspicli.c @@ -17,6 +17,10 @@ * limitations under the License. */ +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + #include /** diff --git a/winpr/synch/CMakeLists.txt b/winpr/libwinpr/synch/CMakeLists.txt similarity index 59% rename from winpr/synch/CMakeLists.txt rename to winpr/libwinpr/synch/CMakeLists.txt index ddbca8c96..e53671556 100644 --- a/winpr/synch/CMakeLists.txt +++ b/winpr/libwinpr/synch/CMakeLists.txt @@ -17,6 +17,9 @@ # See the License for the specific language governing permissions and # limitations under the License. +set(CMAKE_THREAD_PREFER_PTHREAD) +find_required_package(Threads) + set(WINPR_SYNCH_SRCS critical.c event.c @@ -24,13 +27,29 @@ set(WINPR_SYNCH_SRCS semaphore.c sleep.c) -add_library(winpr-synch ${WINPR_SYNCH_SRCS}) +if(WITH_MONOLITHIC_BUILD) + add_library(winpr-synch OBJECT ${WINPR_SYNCH_SRCS}) +else() + add_library(winpr-synch ${WINPR_SYNCH_SRCS}) +endif() set_target_properties(winpr-synch PROPERTIES VERSION ${FREERDP_VERSION_FULL} SOVERSION ${FREERDP_VERSION} PREFIX "lib") -if(NOT WIN32) - target_link_libraries(winpr-synch winpr-handle) +set(WINPR_SYNCH_LIBS + ${CMAKE_THREAD_LIBS_INIT} + ${CMAKE_DL_LIBS}) + +if(${CMAKE_SYSTEM_NAME} MATCHES SunOS) + set(WINPR_SYNCH_LIBS ${WINPR_SYNCH_LIBS} rt) endif() -install(TARGETS winpr-synch DESTINATION ${CMAKE_INSTALL_LIBDIR}) +if(WITH_MONOLITHIC_BUILD) + set(WINPR_LIBS ${WINPR_LIBS} ${WINPR_SYNCH_LIBS} PARENT_SCOPE) +else() + if(NOT WIN32) + set(WINPR_SYNCH_LIBS ${WINPR_SYNCH_LIBS} winpr-handle) + endif() + target_link_libraries(winpr-synch ${WINPR_SYNCH_LIBS}) + install(TARGETS winpr-synch DESTINATION ${CMAKE_INSTALL_LIBDIR}) +endif() diff --git a/winpr/synch/critical.c b/winpr/libwinpr/synch/critical.c similarity index 93% rename from winpr/synch/critical.c rename to winpr/libwinpr/synch/critical.c index b929ef678..1ebbf99c4 100644 --- a/winpr/synch/critical.c +++ b/winpr/libwinpr/synch/critical.c @@ -17,6 +17,10 @@ * limitations under the License. */ +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + #include diff --git a/winpr/synch/event.c b/winpr/libwinpr/synch/event.c similarity index 93% rename from winpr/synch/event.c rename to winpr/libwinpr/synch/event.c index b929ef678..1ebbf99c4 100644 --- a/winpr/synch/event.c +++ b/winpr/libwinpr/synch/event.c @@ -17,6 +17,10 @@ * limitations under the License. */ +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + #include diff --git a/winpr/synch/mutex.c b/winpr/libwinpr/synch/mutex.c similarity index 93% rename from winpr/synch/mutex.c rename to winpr/libwinpr/synch/mutex.c index b929ef678..1ebbf99c4 100644 --- a/winpr/synch/mutex.c +++ b/winpr/libwinpr/synch/mutex.c @@ -17,6 +17,10 @@ * limitations under the License. */ +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + #include diff --git a/winpr/synch/semaphore.c b/winpr/libwinpr/synch/semaphore.c similarity index 98% rename from winpr/synch/semaphore.c rename to winpr/libwinpr/synch/semaphore.c index 867364a1e..8d4be4ea7 100644 --- a/winpr/synch/semaphore.c +++ b/winpr/libwinpr/synch/semaphore.c @@ -17,6 +17,10 @@ * limitations under the License. */ +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + #include #ifndef _WIN32 diff --git a/winpr/synch/sleep.c b/winpr/libwinpr/synch/sleep.c similarity index 93% rename from winpr/synch/sleep.c rename to winpr/libwinpr/synch/sleep.c index b929ef678..1ebbf99c4 100644 --- a/winpr/synch/sleep.c +++ b/winpr/libwinpr/synch/sleep.c @@ -17,6 +17,10 @@ * limitations under the License. */ +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + #include diff --git a/winpr/sysinfo/CMakeLists.txt b/winpr/libwinpr/sysinfo/CMakeLists.txt similarity index 78% rename from winpr/sysinfo/CMakeLists.txt rename to winpr/libwinpr/sysinfo/CMakeLists.txt index cf82e0be7..159163800 100644 --- a/winpr/sysinfo/CMakeLists.txt +++ b/winpr/libwinpr/sysinfo/CMakeLists.txt @@ -20,9 +20,16 @@ set(WINPR_SYSINFO_SRCS sysinfo.c) -add_library(winpr-sysinfo ${WINPR_SYSINFO_SRCS}) +if(WITH_MONOLITHIC_BUILD) + add_library(winpr-sysinfo OBJECT ${WINPR_SYSINFO_SRCS}) +else() + add_library(winpr-sysinfo ${WINPR_SYSINFO_SRCS}) +endif() set_target_properties(winpr-sysinfo PROPERTIES VERSION ${FREERDP_VERSION_FULL} SOVERSION ${FREERDP_VERSION} PREFIX "lib") -install(TARGETS winpr-sysinfo DESTINATION ${CMAKE_INSTALL_LIBDIR}) +if(WITH_MONOLITHIC_BUILD) +else() + install(TARGETS winpr-sysinfo DESTINATION ${CMAKE_INSTALL_LIBDIR}) +endif() diff --git a/winpr/sysinfo/sysinfo.c b/winpr/libwinpr/sysinfo/sysinfo.c similarity index 98% rename from winpr/sysinfo/sysinfo.c rename to winpr/libwinpr/sysinfo/sysinfo.c index feadc8986..000e7a757 100644 --- a/winpr/sysinfo/sysinfo.c +++ b/winpr/libwinpr/sysinfo/sysinfo.c @@ -17,6 +17,10 @@ * limitations under the License. */ +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + #include /** diff --git a/winpr/utils/CMakeLists.txt b/winpr/libwinpr/utils/CMakeLists.txt similarity index 67% rename from winpr/utils/CMakeLists.txt rename to winpr/libwinpr/utils/CMakeLists.txt index 12d24a0b7..ff4868d76 100644 --- a/winpr/utils/CMakeLists.txt +++ b/winpr/libwinpr/utils/CMakeLists.txt @@ -23,19 +23,28 @@ set(WINPR_UTILS_SRCS sam.c stream.c) -add_library(winpr-utils ${WINPR_UTILS_SRCS}) - include_directories(${ZLIB_INCLUDE_DIRS}) include_directories(${OPENSSL_INCLUDE_DIR}) -set_target_properties(winpr-utils PROPERTIES VERSION ${FREERDP_VERSION_FULL} SOVERSION ${FREERDP_VERSION} PREFIX "lib") - -if (NOT WIN32) - target_link_libraries(winpr-utils winpr-crt) +if(WITH_MONOLITHIC_BUILD) + add_library(winpr-utils OBJECT ${WINPR_UTILS_SRCS}) +else() + add_library(winpr-utils ${WINPR_UTILS_SRCS}) endif() -target_link_libraries(winpr-utils ${ZLIB_LIBRARIES}) -target_link_libraries(winpr-utils ${OPENSSL_LIBRARIES}) +set_target_properties(winpr-utils PROPERTIES VERSION ${FREERDP_VERSION_FULL} SOVERSION ${FREERDP_VERSION} PREFIX "lib") -install(TARGETS winpr-utils DESTINATION ${CMAKE_INSTALL_LIBDIR}) +set(WINPR_UTILS_LIBS + ${ZLIB_LIBRARIES} + ${OPENSSL_LIBRARIES}) +if(WITH_MONOLITHIC_BUILD) + set(WINPR_LIBS ${WINPR_LIBS} ${WINPR_UTILS_LIBS} PARENT_SCOPE) +else() + if (NOT WIN32) + set(WINPR_UTILS_LIBS ${WINPR_UTILS_LIBS} winpr-crt) + endif() + + target_link_libraries(winpr-utils ${WINPR_UTILS_LIBS}) + install(TARGETS winpr-utils DESTINATION ${CMAKE_INSTALL_LIBDIR}) +endif() diff --git a/winpr/utils/ntlm.c b/winpr/libwinpr/utils/ntlm.c similarity index 98% rename from winpr/utils/ntlm.c rename to winpr/libwinpr/utils/ntlm.c index f345bc391..200583ac6 100644 --- a/winpr/utils/ntlm.c +++ b/winpr/libwinpr/utils/ntlm.c @@ -17,6 +17,10 @@ * limitations under the License. */ +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + #include #include diff --git a/winpr/utils/print.c b/winpr/libwinpr/utils/print.c similarity index 96% rename from winpr/utils/print.c rename to winpr/libwinpr/utils/print.c index 9aa50fee2..173df27c7 100644 --- a/winpr/utils/print.c +++ b/winpr/libwinpr/utils/print.c @@ -17,6 +17,10 @@ * limitations under the License. */ +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + #include #include diff --git a/winpr/utils/sam.c b/winpr/libwinpr/utils/sam.c similarity index 99% rename from winpr/utils/sam.c rename to winpr/libwinpr/utils/sam.c index f51b35781..b4cebc685 100644 --- a/winpr/utils/sam.c +++ b/winpr/libwinpr/utils/sam.c @@ -17,6 +17,10 @@ * limitations under the License. */ +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + #include #include #include diff --git a/winpr/utils/stream.c b/winpr/libwinpr/utils/stream.c similarity index 98% rename from winpr/utils/stream.c rename to winpr/libwinpr/utils/stream.c index 3def650cf..a1be346a5 100644 --- a/winpr/utils/stream.c +++ b/winpr/libwinpr/utils/stream.c @@ -18,6 +18,10 @@ * limitations under the License. */ +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + #include #include diff --git a/winpr/tools/hash/CMakeLists.txt b/winpr/tools/hash/CMakeLists.txt index b8a1fc46c..cef98e55d 100644 --- a/winpr/tools/hash/CMakeLists.txt +++ b/winpr/tools/hash/CMakeLists.txt @@ -20,5 +20,9 @@ add_executable(winpr-hash hash.c) -target_link_libraries(winpr-hash winpr-utils) +if(WITH_MONOLITHIC_BUILD) + target_link_libraries(winpr-hash winpr) +else() + target_link_libraries(winpr-hash winpr-utils) +endif() diff --git a/winpr/tools/reg/CMakeLists.txt b/winpr/tools/reg/CMakeLists.txt index fd121a00e..446de5d2f 100644 --- a/winpr/tools/reg/CMakeLists.txt +++ b/winpr/tools/reg/CMakeLists.txt @@ -20,8 +20,12 @@ add_executable(winpr-reg reg.c) -target_link_libraries(winpr-reg winpr-utils) - -if(NOT WIN32) - target_link_libraries(winpr-reg winpr-registry) +if(WITH_MONOLITHIC_BUILD) + target_link_libraries(winpr-reg winpr) +else() + target_link_libraries(winpr-reg winpr-utils) + + if(NOT WIN32) + target_link_libraries(winpr-reg winpr-registry) + endif() endif()