forked from dolphin-emu/dolphin
		
	
		
			
				
	
	
		
			91 lines
		
	
	
		
			2.5 KiB
		
	
	
	
		
			CMake
		
	
	
	
	
	
			
		
		
	
	
			91 lines
		
	
	
		
			2.5 KiB
		
	
	
	
		
			CMake
		
	
	
	
	
	
# because of generated UI files
 | 
						|
include_directories(${CMAKE_CURRENT_BINARY_DIR})
 | 
						|
 | 
						|
add_definitions(-DQT_USE_QSTRINGBUILDER -DQT_NO_CAST_FROM_ASCII -DQT_NO_CAST_TO_ASCII)
 | 
						|
set(CMAKE_AUTOMOC ON)
 | 
						|
 | 
						|
set(SRCS
 | 
						|
	AboutDialog.cpp
 | 
						|
	AboutDialog.h
 | 
						|
	Host.cpp
 | 
						|
	Main.cpp
 | 
						|
	MainWindow.cpp
 | 
						|
	MainWindow.h
 | 
						|
	SystemInfo.cpp
 | 
						|
	Utils/Resources.cpp
 | 
						|
	Utils/Utils.cpp
 | 
						|
	VideoInterface/VideoInterface.cpp
 | 
						|
	)
 | 
						|
 | 
						|
set(UIS
 | 
						|
	AboutDialog.ui
 | 
						|
	MainWindow.ui
 | 
						|
	SystemInfo.ui
 | 
						|
	)
 | 
						|
 | 
						|
set(LIBS core uicommon)
 | 
						|
 | 
						|
if(${CMAKE_SYSTEM_NAME} MATCHES "Darwin")
 | 
						|
	# Link against OS X system frameworks.
 | 
						|
	list(APPEND LIBS
 | 
						|
		${APPKIT_LIBRARY}
 | 
						|
		${AU_LIBRARY}
 | 
						|
		${COREAUDIO_LIBRARY}
 | 
						|
		${COREFUND_LIBRARY}
 | 
						|
		${CORESERV_LIBRARY}
 | 
						|
		${IOK_LIBRARY}
 | 
						|
		${FORCEFEEDBACK}
 | 
						|
		)
 | 
						|
	set(DOLPHINQT_BINARY DolphinQt)
 | 
						|
else()
 | 
						|
	set(DOLPHINQT_BINARY dolphin-emu-qt)
 | 
						|
endif()
 | 
						|
 | 
						|
qt5_wrap_ui(UI_HEADERS ${UIS})
 | 
						|
add_executable(${DOLPHINQT_BINARY} ${SRCS} ${UI_HEADERS})
 | 
						|
target_link_libraries(${DOLPHINQT_BINARY} ${LIBS})
 | 
						|
qt5_use_modules(${DOLPHINQT_BINARY} Widgets)
 | 
						|
 | 
						|
if(${CMAKE_SYSTEM_NAME} MATCHES "Darwin")
 | 
						|
	# Note: This is based on the DolphinWX version.
 | 
						|
 | 
						|
	include(BundleUtilities)
 | 
						|
	set(BUNDLE_PATH ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/${DOLPHINQT_BINARY}.app)
 | 
						|
 | 
						|
	# Ask for an application bundle.
 | 
						|
	set_target_properties(${DOLPHINQT_BINARY} PROPERTIES
 | 
						|
		MACOSX_BUNDLE true
 | 
						|
		MACOSX_BUNDLE_INFO_PLIST ${CMAKE_CURRENT_SOURCE_DIR}/Info.plist.in
 | 
						|
		)
 | 
						|
 | 
						|
	# get rid of any old copies
 | 
						|
	file (REMOVE_RECURSE ${BUNDLE_PATH}/Contents/Resources/Sys)
 | 
						|
	if(NOT SKIP_POSTPROCESS_BUNDLE)
 | 
						|
		# Fix up the bundle after it is finished.
 | 
						|
		# There does not seem to be an easy way to run CMake commands post-build,
 | 
						|
		# so we invoke CMake again on a generated script.
 | 
						|
		file(WRITE ${CMAKE_CURRENT_BINARY_DIR}/postprocess_bundle.cmake "
 | 
						|
			include(BundleUtilities)
 | 
						|
			message(\"Fixing up application bundle: ${BUNDLE_PATH}\")
 | 
						|
			message(\"(Note: This is only necessary to produce a redistributable binary.\")
 | 
						|
			message(\"To skip, pass -DSKIP_POSTPROCESS_BUNDLE=1 to cmake.)\")
 | 
						|
			set(BU_CHMOD_BUNDLE_ITEMS ON)
 | 
						|
			fixup_bundle(\"${BUNDLE_PATH}\" \"\" \"\")
 | 
						|
			file(INSTALL ${CMAKE_SOURCE_DIR}/Data/Sys
 | 
						|
				DESTINATION ${BUNDLE_PATH}/Contents/Resources
 | 
						|
				)
 | 
						|
			")
 | 
						|
		add_custom_command(TARGET ${DOLPHINQT_BINARY} POST_BUILD
 | 
						|
			COMMAND ${CMAKE_COMMAND} -P postprocess_bundle.cmake
 | 
						|
			)
 | 
						|
	else()
 | 
						|
		add_custom_command(OUTPUT ${BUNDLE_PATH}/Contents/Resources/Sys
 | 
						|
			COMMAND ln -nfs ${CMAKE_SOURCE_DIR}/Data/Sys ${BUNDLE_PATH}/Contents/Resources/Sys
 | 
						|
			VERBATIM
 | 
						|
			)
 | 
						|
		add_custom_target(CopyDataIntoBundle ALL
 | 
						|
			DEPENDS ${BUNDLE_PATH}/Contents/Resources/Sys
 | 
						|
			)
 | 
						|
	endif()
 | 
						|
endif()
 |