@@ -2,9 +2,8 @@ cmake_minimum_required(VERSION 3.5)
22set (CMAKE_OSX_DEPLOYMENT_TARGET "10.12" CACHE STRING "Minimum OS X deployment version" FORCE)
33project (FULivePC)
44set (target FULivePC)
5- set (CMAKE_CXX_STANDARD 11 )
5+ set (CMAKE_CXX_STANDARD 14 )
66
7- message (${CMAKE_SIZEOF_VOID_P} )
87
98if (WIN32 )
109 set (CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${CMAKE_CURRENT_LIST_DIR} /../ThirdParty/Windows/cmakeScripts/Modules)
@@ -75,14 +74,18 @@ endif()
7574if (WIN32 )
7675set (${target} _COMMON
7776 common/fu_tool.cpp
78- ../include /common/fu_tool.h
77+ ../include /common/fu_tool.h
78+ common/fu_shared_obj.cpp
79+ ../include /common/fu_shared_obj.h
7980)
8081else ()
8182set (${target} _COMMON
8283 common/fu_tool.cpp
8384 ../include /common/fu_tool.h
8485 ../include /common/fu_tool_mac.h
8586 common/fu_tool_mac.mm
87+ common/fu_shared_obj.cpp
88+ ../include /common/fu_shared_obj.h
8689)
8790endif ()
8891
@@ -106,6 +109,8 @@ set(${target}_GUI
106109 GUI/Texture.h
107110 GUI/MouseControl.cpp
108111 GUI/MouseControl.h
112+ GUI/GuiCustomMakeup.cpp
113+ GUI/GuiCustomMakeup.h
109114)
110115
111116set (${target} _IMGUI
@@ -219,7 +224,11 @@ import_custom_library(${target} FreeImage)
219224import_custom_library(${target} Glfw)
220225import_custom_library(${target} ffmpeg)
221226
227+
222228if (WIN32 )
229+
230+ import_custom_library(${target} VirtualCamera)
231+
223232 # set_target_properties(${target} PROPERTIES COMPILE_FLAGS "/MP" )
224233 set_target_properties (${target} PROPERTIES VS_DEBUGGER_WORKING_DIRECTORY "${CMAKE_CURRENT_LIST_DIR} /../" )
225234
@@ -229,16 +238,22 @@ if(WIN32)
229238 set (SrcOpenCVDLLFolder ${CMAKE_CURRENT_LIST_DIR} /../ThirdParty/Windows/opencv400/lib/win32 )
230239 set (SrcOpenCVDLLFileFFmpeg ${CMAKE_CURRENT_LIST_DIR} /../ThirdParty/Windows/opencv400/lib/win32 /opencv_ffmpeg400.dll)
231240 set (SrcFfmpegDLLFolder ${CMAKE_CURRENT_LIST_DIR} /../ThirdParty/Windows/ffmpeg/lib/win32 )
241+ set (SrcVirtualDLLFolder ${CMAKE_CURRENT_LIST_DIR} /../ThirdParty/Windows/VirtualCamera/lib/win32 )
232242 else ()
233243 set (SrcNamaDLLFolder ${CMAKE_CURRENT_LIST_DIR} /../ThirdParty/Windows/FaceUnity-SDK-PC/lib/win64)
234244 set (SrcFreeImageDLLFolder ${CMAKE_CURRENT_LIST_DIR} /../ThirdParty/Windows/FreeImage/lib/win64)
235245 set (SrcOpenCVDLLFolder ${CMAKE_CURRENT_LIST_DIR} /../ThirdParty/Windows/opencv400/lib/win64)
236246 set (SrcOpenCVDLLFileFFmpeg ${CMAKE_CURRENT_LIST_DIR} /../ThirdParty/Windows/opencv400/lib/win64/opencv_ffmpeg400_64.dll)
237247 set (SrcFfmpegDLLFolder ${CMAKE_CURRENT_LIST_DIR} /../ThirdParty/Windows/ffmpeg/lib/win64)
248+ set (SrcVirtualDLLFolder ${CMAKE_CURRENT_LIST_DIR} /../ThirdParty/Windows/VirtualCamera/lib/win64)
238249 endif ()
239250
240251 add_custom_command (TARGET ${target}
241252 POST_BUILD
253+
254+ COMMAND ${CMAKE_COMMAND} -E make_directory ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}
255+ COMMAND ${CMAKE_COMMAND} -E make_directory ${CMAKE_RUNTIME_OUTPUT_DIRECTORY_DEBUG}
256+
242257 COMMAND ${CMAKE_COMMAND} -E copy_if_different ${SrcNamaDLLFolder} /fuai.dll ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}
243258 COMMAND ${CMAKE_COMMAND} -E copy_if_different ${SrcNamaDLLFolder} /CNamaSDK.dll ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}
244259 COMMAND ${CMAKE_COMMAND} -E copy_if_different ${SrcFreeImageDLLFolder} /FreeImage.dll ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}
@@ -249,6 +264,9 @@ if(WIN32)
249264 COMMAND ${CMAKE_COMMAND} -E copy_if_different ${SrcFfmpegDLLFolder} /avformat-58.dll ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}
250265 COMMAND ${CMAKE_COMMAND} -E copy_if_different ${SrcFfmpegDLLFolder} /avcodec-58.dll ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}
251266 COMMAND ${CMAKE_COMMAND} -E copy_if_different ${SrcFfmpegDLLFolder} /swresample-3.dll ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}
267+ COMMAND ${CMAKE_COMMAND} -E copy_if_different ${SrcFfmpegDLLFolder} /libwinpthread-1.dll ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}
268+ COMMAND ${CMAKE_COMMAND} -E copy_if_different ${SrcVirtualDLLFolder} /VirtualCamera.dll ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}
269+
252270
253271 COMMAND ${CMAKE_COMMAND} -E copy_if_different ${SrcNamaDLLFolder} /fuai.dll ${CMAKE_RUNTIME_OUTPUT_DIRECTORY_DEBUG}
254272 COMMAND ${CMAKE_COMMAND} -E copy_if_different ${SrcNamaDLLFolder} /CNamaSDK.dll ${CMAKE_RUNTIME_OUTPUT_DIRECTORY_DEBUG}
@@ -261,20 +279,12 @@ if(WIN32)
261279 COMMAND ${CMAKE_COMMAND} -E copy_if_different ${SrcFfmpegDLLFolder} /avformat-58.dll ${CMAKE_RUNTIME_OUTPUT_DIRECTORY_DEBUG}
262280 COMMAND ${CMAKE_COMMAND} -E copy_if_different ${SrcFfmpegDLLFolder} /avcodec-58.dll ${CMAKE_RUNTIME_OUTPUT_DIRECTORY_DEBUG}
263281 COMMAND ${CMAKE_COMMAND} -E copy_if_different ${SrcFfmpegDLLFolder} /swresample-3.dll ${CMAKE_RUNTIME_OUTPUT_DIRECTORY_DEBUG}
264-
282+ COMMAND ${CMAKE_COMMAND} -E copy_if_different ${SrcFfmpegDLLFolder} /libwinpthread-1.dll ${CMAKE_RUNTIME_OUTPUT_DIRECTORY_DEBUG}
283+ COMMAND ${CMAKE_COMMAND} -E copy_if_different ${SrcVirtualDLLFolder} /VirtualCamera.dll ${CMAKE_RUNTIME_OUTPUT_DIRECTORY_DEBUG}
265284
266285 COMMENT "copy dll"
267286 )
268287
269- if (${CMAKE_SIZEOF_VOID_P} EQUAL 8)
270- add_custom_command (TARGET ${target}
271- POST_BUILD
272- COMMAND ${CMAKE_COMMAND} -E copy_if_different ${SrcFfmpegDLLFolder} /libwinpthread-1.dll ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}
273- COMMAND ${CMAKE_COMMAND} -E copy_if_different ${SrcFfmpegDLLFolder} /libwinpthread-1.dll ${CMAKE_RUNTIME_OUTPUT_DIRECTORY_DEBUG}
274- COMMENT "copy x64 ffmpeg libs"
275- )
276- endif ()
277-
278288elseif (APPLE )
279289
280290 target_link_libraries (${target}
@@ -301,6 +311,7 @@ elseif(APPLE)
301311 set_target_properties (${target} PROPERTIES
302312 MACOSX_BUNDLE TRUE
303313 MACOSX_BUNDLE_INFO_PLIST ${CMAKE_CURRENT_LIST_DIR} /MAC_DATA/Info.plist
314+ XCODE_ATTRIBUTE_ONLY_ACTIVE_ARCH [variant=Debug] "YES"
304315 XCODE_ATTRIBUTE_CODE_SIGN_IDENTITY "Developer ID Application: Faceunity Technology Co., Ltd. (35A6KD62ZJ)"
305316 XCODE_ATTRIBUTE_OTHER_CODE_SIGN_FLAGS "--deep"
306317 XCODE_ATTRIBUTE_PRODUCT_BUNDLE_IDENTIFIER "com.faceunity.FULiveMac"
@@ -309,37 +320,34 @@ elseif(APPLE)
309320
310321 set ( MacOS_APP_Content "${CMAKE_RUNTIME_OUTPUT_DIRECTORY} /FULivePC.app/Contents" )
311322
312- # 如果不存在则创建,用于工程第一次运行的时候
313- if (EXISTS "${CMAKE_CURRENT_LIST_DIR} /MAC_DATA/Resource.bundle" )
314- else ()
315- file (COPY ${CMAKE_CURRENT_LIST_DIR} /../assets DESTINATION ${CMAKE_CURRENT_LIST_DIR} /MAC_DATA/Resource .bundle )
316- file (COPY ${CMAKE_CURRENT_LIST_DIR} /../res/config.json DESTINATION ${CMAKE_CURRENT_LIST_DIR} /MAC_DATA/Resource .bundle )
317- endif ()
318- if (EXISTS "${CMAKE_CURRENT_LIST_DIR} /MAC_DATA/ResPic.bundle" )
319- else ()
320- file (COPY ${CMAKE_CURRENT_LIST_DIR} /../res DESTINATION ${CMAKE_CURRENT_LIST_DIR} /MAC_DATA/ResPic.bundle )
321- endif ()
322-
323- add_custom_command (TARGET ${target} PRE_BUILD
324- #需要先rm Resource.bundle 和 ResPic.bundle,否则删除时,无法刷新
325- COMMAND ${CMAKE_COMMAND} -E rm -r ${CMAKE_CURRENT_LIST_DIR} /MAC_DATA/Resource .bundle
326- COMMAND ${CMAKE_COMMAND} -E rm -r ${CMAKE_CURRENT_LIST_DIR} /MAC_DATA/ResPic.bundle
327- COMMAND ${CMAKE_COMMAND} -E copy_directory ${CMAKE_CURRENT_LIST_DIR} /../assets ${CMAKE_CURRENT_LIST_DIR} /MAC_DATA/Resource .bundle
328- COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_LIST_DIR} /../res/config.json ${CMAKE_CURRENT_LIST_DIR} /MAC_DATA/Resource .bundle
329- COMMAND ${CMAKE_COMMAND} -E copy_directory ${CMAKE_CURRENT_LIST_DIR} /../res ${CMAKE_CURRENT_LIST_DIR} /MAC_DATA/ResPic.bundle
330- COMMAND ${CMAKE_COMMAND} -E make_directory ${MacOS_APP_Content} /Frameworks
331- COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_LIST_DIR} /../ThirdParty/Mac/glfw/lib/*.dylib ${MacOS_APP_Content} /Frameworks
332- COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_LIST_DIR} /../ThirdParty/Mac/FaceUnity-SDK-Mac/lib/*.dylib ${MacOS_APP_Content} /Frameworks
333- COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_LIST_DIR} /../ThirdParty/Mac/Framework /*.dylib ${MacOS_APP_Content} /Frameworks
334- )
323+ # 如果不存在则创建,用于工程第一次运行的时候
324+ if (EXISTS "${CMAKE_CURRENT_LIST_DIR} /MAC_DATA/Resource.bundle" )
325+ else ()
326+ file (COPY ${CMAKE_CURRENT_LIST_DIR} /../assets DESTINATION ${CMAKE_CURRENT_LIST_DIR} /MAC_DATA/Resource .bundle )
327+ file (COPY ${CMAKE_CURRENT_LIST_DIR} /../res/config.json DESTINATION ${CMAKE_CURRENT_LIST_DIR} /MAC_DATA/Resource .bundle )
328+ endif ()
329+ if (EXISTS "${CMAKE_CURRENT_LIST_DIR} /MAC_DATA/ResPic.bundle" )
330+ else ()
331+ file (COPY ${CMAKE_CURRENT_LIST_DIR} /../res DESTINATION ${CMAKE_CURRENT_LIST_DIR} /MAC_DATA/ResPic.bundle )
332+ endif ()
335333
334+ add_custom_command (TARGET ${target} PRE_BUILD
335+ #需要先rm Resource.bundle 和 ResPic.bundle,否则删除时,无法刷新
336+ COMMAND ${CMAKE_COMMAND} -E rm -r ${CMAKE_CURRENT_LIST_DIR} /MAC_DATA/Resource .bundle
337+ COMMAND ${CMAKE_COMMAND} -E rm -r ${CMAKE_CURRENT_LIST_DIR} /MAC_DATA/ResPic.bundle
338+ COMMAND ${CMAKE_COMMAND} -E copy_directory ${CMAKE_CURRENT_LIST_DIR} /../assets ${CMAKE_CURRENT_LIST_DIR} /MAC_DATA/Resource .bundle
339+ COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_LIST_DIR} /../res/config.json ${CMAKE_CURRENT_LIST_DIR} /MAC_DATA/Resource .bundle
340+ COMMAND ${CMAKE_COMMAND} -E copy_directory ${CMAKE_CURRENT_LIST_DIR} /../res ${CMAKE_CURRENT_LIST_DIR} /MAC_DATA/ResPic.bundle
341+ COMMAND ${CMAKE_COMMAND} -E make_directory ${MacOS_APP_Content} /Frameworks
342+ COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_LIST_DIR} /../ThirdParty/Mac/glfw/lib/*.dylib ${MacOS_APP_Content} /Frameworks
343+ COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_LIST_DIR} /../ThirdParty/Mac/FaceUnity-SDK-Mac/lib/*.dylib ${MacOS_APP_Content} /Frameworks
344+ COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_LIST_DIR} /../ThirdParty/Mac/Framework /*.dylib ${MacOS_APP_Content} /Frameworks
345+ )
336346
337- set_source_files_properties (${CMAKE_CURRENT_LIST_DIR} /MAC_DATA/ResPic.bundle PROPERTIES MACOSX_PACKAGE_LOCATION Resources)
338- set_source_files_properties (${CMAKE_CURRENT_LIST_DIR} /MAC_DATA/Resource .bundle PROPERTIES MACOSX_PACKAGE_LOCATION Resources)
339- set_source_files_properties (${CMAKE_CURRENT_LIST_DIR} /MAC_DATA/AppIcon.icns PROPERTIES MACOSX_PACKAGE_LOCATION Resources)
340347
348+ set_source_files_properties (${CMAKE_CURRENT_LIST_DIR} /MAC_DATA/ResPic.bundle PROPERTIES MACOSX_PACKAGE_LOCATION Resources)
349+ set_source_files_properties (${CMAKE_CURRENT_LIST_DIR} /MAC_DATA/Resource .bundle PROPERTIES MACOSX_PACKAGE_LOCATION Resources)
350+ set_source_files_properties (${CMAKE_CURRENT_LIST_DIR} /MAC_DATA/AppIcon.icns PROPERTIES MACOSX_PACKAGE_LOCATION Resources)
351+ elseif (UNIX )
341352
342-
343-
344- elseif (UNIX )
345353endif ()
0 commit comments