libwinpr-com: create empty module

This commit is contained in:
Marc-André Moreau 2013-08-19 19:06:47 -04:00
parent f69f4285b1
commit 1068a1f3cc
7 changed files with 217 additions and 0 deletions

View File

@ -0,0 +1,49 @@
# WinPR: Windows Portable Runtime
# libwinpr-com cmake build script
#
# Copyright 2013 Marc-Andre Moreau <marcandre.moreau@gmail.com>
#
# 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.
set(MODULE_NAME "winpr-com")
set(MODULE_PREFIX "WINPR_COM")
set(${MODULE_PREFIX}_SRCS
com.c)
if(MSVC AND (NOT MONOLITHIC_BUILD))
set(${MODULE_PREFIX}_SRCS ${${MODULE_PREFIX}_SRCS} module.def)
endif()
add_complex_library(MODULE ${MODULE_NAME} TYPE "OBJECT"
MONOLITHIC ${MONOLITHIC_BUILD}
SOURCES ${${MODULE_PREFIX}_SRCS})
set_target_properties(${MODULE_NAME} PROPERTIES VERSION ${WINPR_VERSION_FULL} SOVERSION ${WINPR_VERSION} PREFIX "lib")
if(WIN32)
set(${MODULE_PREFIX}_LIBS ${${MODULE_PREFIX}_LIBS} credui)
endif()
if(MONOLITHIC_BUILD)
set(WINPR_LIBS ${WINPR_LIBS} ${${MODULE_PREFIX}_LIBS} PARENT_SCOPE)
else()
target_link_libraries(${MODULE_NAME} ${${MODULE_PREFIX}_LIBS})
install(TARGETS ${MODULE_NAME} DESTINATION ${CMAKE_INSTALL_LIBDIR})
endif()
set_property(TARGET ${MODULE_NAME} PROPERTY FOLDER "WinPR")
if(BUILD_TESTING)
add_subdirectory(test)
endif()

View File

@ -0,0 +1,9 @@
set(MINWIN_LAYER "1")
set(MINWIN_GROUP "core")
set(MINWIN_MAJOR_VERSION "1")
set(MINWIN_MINOR_VERSION "0")
set(MINWIN_SHORT_NAME "com")
set(MINWIN_LONG_NAME "Component Object Model (COM)")
set(MODULE_LIBRARY_NAME "api-ms-win-${MINWIN_GROUP}-${MINWIN_SHORT_NAME}-l${MINWIN_LAYER}-${MINWIN_MAJOR_VERSION}-${MINWIN_MINOR_VERSION}")

115
winpr/libwinpr/com/com.c Normal file
View File

@ -0,0 +1,115 @@
/**
* WinPR: Windows Portable Runtime
* Component Object Model (COM)
*
* Copyright 2013 Marc-Andre Moreau <marcandre.moreau@gmail.com>
*
* 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 <winpr/crt.h>
/**
* api-ms-win-core-com-l1-1-0.dll:
*
* CLSIDFromProgID
* CLSIDFromString
* CoAddRefServerProcess
* CoAllowUnmarshalerCLSID
* CoCancelCall
* CoCopyProxy
* CoCreateFreeThreadedMarshaler
* CoCreateGuid
* CoCreateInstance
* CoCreateInstanceEx
* CoCreateInstanceFromApp
* CoDecodeProxy
* CoDecrementMTAUsage
* CoDisableCallCancellation
* CoDisconnectContext
* CoDisconnectObject
* CoEnableCallCancellation
* CoFreeUnusedLibraries
* CoFreeUnusedLibrariesEx
* CoGetApartmentType
* CoGetCallContext
* CoGetCallerTID
* CoGetCancelObject
* CoGetClassObject
* CoGetContextToken
* CoGetCurrentLogicalThreadId
* CoGetCurrentProcess
* CoGetDefaultContext
* CoGetInterfaceAndReleaseStream
* CoGetMalloc
* CoGetMarshalSizeMax
* CoGetObjectContext
* CoGetPSClsid
* CoGetStandardMarshal
* CoGetStdMarshalEx
* CoGetTreatAsClass
* CoImpersonateClient
* CoIncrementMTAUsage
* CoInitializeEx
* CoInitializeSecurity
* CoInvalidateRemoteMachineBindings
* CoIsHandlerConnected
* CoLockObjectExternal
* CoMarshalHresult
* CoMarshalInterface
* CoMarshalInterThreadInterfaceInStream
* CoQueryAuthenticationServices
* CoQueryClientBlanket
* CoQueryProxyBlanket
* CoRegisterClassObject
* CoRegisterPSClsid
* CoRegisterSurrogate
* CoReleaseMarshalData
* CoReleaseServerProcess
* CoResumeClassObjects
* CoRevertToSelf
* CoRevokeClassObject
* CoSetCancelObject
* CoSetProxyBlanket
* CoSuspendClassObjects
* CoSwitchCallContext
* CoTaskMemAlloc
* CoTaskMemFree
* CoTaskMemRealloc
* CoTestCancel
* CoUninitialize
* CoUnmarshalHresult
* CoUnmarshalInterface
* CoWaitForMultipleHandles
* CoWaitForMultipleObjects
* CreateStreamOnHGlobal
* FreePropVariantArray
* GetHGlobalFromStream
* IIDFromString
* ProgIDFromCLSID
* PropVariantClear
* PropVariantCopy
* StringFromCLSID
* StringFromGUID2
* StringFromIID
*/
#ifndef _WIN32
#endif

View File

@ -0,0 +1,2 @@
LIBRARY "libwinpr-com"
EXPORTS

3
winpr/libwinpr/com/test/.gitignore vendored Normal file
View File

@ -0,0 +1,3 @@
TestCom
TestCom.c

View File

@ -0,0 +1,31 @@
set(MODULE_NAME "TestCom")
set(MODULE_PREFIX "TEST_COM")
set(${MODULE_PREFIX}_DRIVER ${MODULE_NAME}.c)
set(${MODULE_PREFIX}_TESTS
TestComReference.c)
create_test_sourcelist(${MODULE_PREFIX}_SRCS
${${MODULE_PREFIX}_DRIVER}
${${MODULE_PREFIX}_TESTS})
add_executable(${MODULE_NAME} ${${MODULE_PREFIX}_SRCS})
set_complex_link_libraries(VARIABLE ${MODULE_PREFIX}_LIBS
MONOLITHIC ${MONOLITHIC_BUILD}
MODULE winpr
MODULES winpr-crt winpr-com)
target_link_libraries(${MODULE_NAME} ${${MODULE_PREFIX}_LIBS})
set_target_properties(${MODULE_NAME} PROPERTIES RUNTIME_OUTPUT_DIRECTORY "${TESTING_OUTPUT_DIRECTORY}")
foreach(test ${${MODULE_PREFIX}_TESTS})
get_filename_component(TestName ${test} NAME_WE)
add_test(${TestName} ${TESTING_OUTPUT_DIRECTORY}/${MODULE_NAME} ${TestName})
endforeach()
set_property(TARGET ${MODULE_NAME} PROPERTY FOLDER "WinPR/Test")

View File

@ -0,0 +1,8 @@
#include <winpr/crt.h>
int TestComReference(int argc, char* argv[])
{
return 0;
}