file(MAKE_DIRECTORY "${SM_SRC_DIR}/generated") if(MSVC) # Add the mapconv program of the past to allow for debugging information. include("CMakeProject-mapconv.cmake") endif() # Keep the module path local for easier grabbing. set(CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR}) # Main project is below. include(CMakeData-arch.cmake) include(CMakeData-rage.cmake) include(CMakeData-os.cmake) include(CMakeData-actor.cmake) include(CMakeData-screen.cmake) include(CMakeData-data.cmake) include(CMakeData-gtk.cmake) include(CMakeData-file-types.cmake) include(CMakeData-globals.cmake) include(CMakeData-singletons.cmake) list(APPEND SMDATA_ALL_FILES_SRC ${SMDATA_GLOBAL_FILES_SRC} ${SMDATA_GLOBAL_SINGLETON_SRC} ${SMDATA_ALL_ACTORS_SRC} ${SMDATA_ALL_ARCH_SRC} ${SMDATA_ALL_DATA_SRC} ${SMDATA_ALL_RAGE_SRC} ${SMDATA_ALL_SCREENS_SRC} ${SMDATA_OS_SRC} ${SMDATA_FILE_TYPES_SRC} ) list(APPEND SMDATA_ALL_FILES_HPP ${SMDATA_GLOBAL_FILES_HPP} ${SMDATA_GLOBAL_SINGLETON_HPP} ${SMDATA_ALL_ACTORS_HPP} ${SMDATA_ALL_ARCH_HPP} ${SMDATA_ALL_DATA_HPP} ${SMDATA_ALL_RAGE_HPP} ${SMDATA_ALL_SCREENS_HPP} ${SMDATA_OS_HPP} ${SMDATA_FILE_TYPES_HPP} ) if(NOT APPLE) list(APPEND SMDATA_ALL_FILES_SRC "Main.cpp") source_group("" FILES "Main.cpp") endif() if(MSVC OR APPLE) set(SM_NAME_RELEASE "StepMania") set(SM_NAME_DEBUG "StepMania-debug") set(SM_NAME_MINSIZEREL "StepMania-min-size") set(SM_NAME_RELWITHDEBINFO "StepMania-release-symbols") else() set(SM_NAME_RELEASE "stepmania") set(SM_NAME_DEBUG "stepmania-debug") set(SM_NAME_MINSIZEREL "stepmania-min-size") set(SM_NAME_RELWITHDEBINFO "stepmania-release-symbols") endif() # Configure generated files here. configure_file("${SM_XCODE_DIR}/Info.plist.in.xml" "${SM_XCODE_DIR}/Info.StepMania.plist") configure_file("${SM_XCODE_DIR}/plistHelper.in.hpp" "${SM_XCODE_DIR}/plistHelper.hpp") # TODO: Make this actually be data and not an executable. if(APPLE) set(MACOSX_BUNDLE_BUNDLE_NAME ${SM_EXE_NAME}) add_executable("${SM_EXE_NAME}" MACOSX_BUNDLE ${SMDATA_ALL_FILES_SRC} ${SMDATA_ALL_FILES_HPP}) set_target_properties("${SM_EXE_NAME}" PROPERTIES MACOSX_BUNDLE TRUE ) else() if (MSVC) foreach ( sm_src_file ${SMDATA_ALL_FILES_SRC} ) get_filename_component(sm_src_raw "${sm_src_file}" NAME_WE) if( ${sm_src_raw} MATCHES "global" ) set_source_files_properties("${sm_src_raw}.cpp" PROPERTIES COMPILE_FLAGS "/Ycglobal.h") elseif(NOT (${sm_src_raw} MATCHES "verstub")) set_source_files_properties("${sm_src_raw}.cpp" PROPERTIES COMPILE_FLAGS "/Yuglobal.h") endif() endforeach() endif() add_executable("${SM_EXE_NAME}" ${SMDATA_ALL_FILES_SRC} ${SMDATA_ALL_FILES_HPP}) endif() set_target_properties("${SM_EXE_NAME}" PROPERTIES OUTPUT_NAME "${SM_NAME_RELEASE}" RELEASE_OUTPUT_NAME "${SM_NAME_RELEASE}" DEBUG_OUTPUT_NAME "${SM_NAME_DEBUG}" MINSIZEREL_OUTPUT_NAME "${SM_NAME_MINSIZEREL}" RELWITHDEBINFO_OUTPUT_NAME "${SM_NAME_RELWITHDEBINFO}" ) if (WITH_VERSION_INFO) sm_add_compile_definition("${SM_EXE_NAME}" HAVE_VERSION_INFO) endif() if (WITH_PORTABLE_TOMCRYPT) sm_add_compile_definition("${SM_EXE_NAME}" LTC_NO_ASM) elseif (WITH_NO_ROLC_TOMCRYPT OR APPLE) sm_add_compile_definition("${SM_EXE_NAME}" LTC_NO_ROLC) endif() sm_add_compile_definition("${SM_EXE_NAME}" CMAKE_POWERED) if (NOT WITH_NETWORKING) sm_add_compile_definition("${SM_EXE_NAME}" WITHOUT_NETWORKING) endif() # Compilation flags per project here. sm_add_compile_definition("${SM_EXE_NAME}" $<$:DEBUG>) sm_add_compile_definition("${SM_EXE_NAME}" $<$:RELEASE>) sm_add_compile_definition("${SM_EXE_NAME}" $<$:MINSIZEREL>) sm_add_compile_definition("${SM_EXE_NAME}" $<$:RELWITHDEBINFO>) set(SM_COMPILE_FLAGS "") if(WITH_SSE2) if(MSVC) set(SM_COMPILE_FLAGS "${SM_COMPILE_FLAGS} /arch:SSE2") else() set(SM_COMPILE_FLAGS "${SM_COMPILE_FLAGS} -msse2") endif() endif() if(WITH_LTO) if(MSVC) set(SM_COMPILE_FLAGS "${SM_COMPILE_FLAGS} /GL") else() set(SM_COMPILE_FLAGS "${SM_COMPILE_FLAGS} -flto") endif() endif() if(MSVC) # TODO: Find a way to do this cleanly for non MSVC users. set(SM_COMPILE_FLAGS "${SM_COMPILE_FLAGS} /MP2") endif() set_target_properties("${SM_EXE_NAME}" PROPERTIES COMPILE_FLAGS ${SM_COMPILE_FLAGS} ) set_target_properties("${SM_EXE_NAME}" PROPERTIES OUTPUT_NAME_DEBUG "${SM_NAME_DEBUG}" OUTPUT_NAME_MINSIZEREL "${SM_NAME_MINSIZEREL}" OUTPUT_NAME_RELWITHDEBINFO "${SM_NAME_RELWITHDEBINFO}" ) list(APPEND SM_WINDOWS_PROGRAM_DLLS "${SM_PROGRAM_DIR}/avcodec-55.dll" "${SM_PROGRAM_DIR}/avformat-55.dll" "${SM_PROGRAM_DIR}/avutil-52.dll" "${SM_PROGRAM_DIR}/msvcp100.dll" "${SM_PROGRAM_DIR}/msvcp110.dll" "${SM_PROGRAM_DIR}/msvcr100.dll" "${SM_PROGRAM_DIR}/msvcr110.dll" "${SM_PROGRAM_DIR}/parallel_lights_io.dll" "${SM_PROGRAM_DIR}/swscale-2.dll" "${SM_PROGRAM_DIR}/vccorlib110.dll" "${SM_PROGRAM_DIR}/zlib1.dll" ) if(WIN32) sm_add_compile_definition("${SM_EXE_NAME}" WINDOWS) sm_add_compile_definition("${SM_EXE_NAME}" _WINDOWS) # TODO: Remove this potential duplicate. sm_add_compile_definition("${SM_EXE_NAME}" _CRT_SECURE_NO_WARNINGS) sm_add_compile_definition("${SM_EXE_NAME}" _WINSOCK_DEPRECATED_NO_WARNINGS) sm_add_compile_definition("${SM_EXE_NAME}" GLEW_STATIC) set_target_properties("${SM_EXE_NAME}" PROPERTIES RUNTIME_OUTPUT_DIRECTORY "${SM_PROGRAM_DIR}" RUNTIME_OUTPUT_DIRECTORY_RELEASE "${SM_PROGRAM_DIR}" RUNTIME_OUTPUT_DIRECTORY_DEBUG "${SM_PROGRAM_DIR}" RUNTIME_OUTPUT_DIRECTORY_MINSIZEREL "${SM_PROGRAM_DIR}" RUNTIME_OUTPUT_DIRECTORY_RELWITHDEBINFO "${SM_PROGRAM_DIR}" ) if(MSVC) # Allow for getting a virtualdub stack trace. add_custom_command(TARGET "${SM_EXE_NAME}" POST_BUILD COMMAND "mapconv" "${SM_PROGRAM_DIR}/$<$:${SM_NAME_DEBUG}>$<$:${SM_NAME_MINSIZEREL}>$<$:${SM_NAME_RELWITHDEBINFO}>$<$:${SM_NAME_RELEASE}>.map" "${SM_PROGRAM_DIR}/$<$:${SM_NAME_DEBUG}>$<$:${SM_NAME_MINSIZEREL}>$<$:${SM_NAME_RELWITHDEBINFO}>$<$:${SM_NAME_RELEASE}>.vdi" COMMENT "Generating file to allow for easier stack traces." ) endif() elseif(APPLE) set_target_properties("${SM_EXE_NAME}" PROPERTIES RUNTIME_OUTPUT_DIRECTORY "${SM_ROOT_DIR}" RUNTIME_OUTPUT_DIRECTORY_RELEASE "${SM_ROOT_DIR}" RUNTIME_OUTPUT_DIRECTORY_DEBUG "${SM_ROOT_DIR}" RUNTIME_OUTPUT_DIRECTORY_MINSIZEREL "${SM_ROOT_DIR}" RUNTIME_OUTPUT_DIRECTORY_RELWITHDEBINFO "${SM_ROOT_DIR}" MACOSX_BUNDLE_INFO_PLIST "${SM_XCODE_DIR}/Info.StepMania.plist" XCODE_ATTRIBUTE_INFOPLIST_FILE "${SM_XCODE_DIR}/Info.StepMania.plist" XCODE_ATTRIBUTE_INFOPLIST_PREPROCESS "YES" XCODE_ATTRIBUTE_INFOPLIST_PREPROCESSOR_DEFINITIONS[variant=Release] "RELEASE" XCODE_ATTRIBUTE_INFOPLIST_PREPROCESSOR_DEFINITIONS[variant=Debug] "DEBUG" XCODE_ATTRIBUTE_INFOPLIST_PREPROCESSOR_DEFINITIONS[variant=MinSizeRel] "MINSIZEREL" XCODE_ATTRIBUTE_INFOPLIST_PREPROCESSOR_DEFINITIONS[variant=RelWithDebInfo] "RELWITHDEBINFO" XCODE_ATTRIBUTE_INFOPLIST_PREFIX_HEADER "${SM_XCODE_DIR}/plistHelper.hpp" XCODE_ATTRIBUTE_GCC_PREFIX_HEADER "${CMAKE_CURRENT_SOURCE_DIR}/archutils/Darwin/StepMania.pch" XCODE_ATTRIBUTE_GCC_ENABLE_CPP_EXCEPTIONS "NO" XCODE_ATTRIBUTE_LIBRARY_SEARCH_PATHS "${SM_XCODE_DIR}/Libraries" ) sm_add_compile_definition("${SM_EXE_NAME}" _XOPEN_SOURCE) if (${HAS_FFMPEG}) sm_add_compile_definition("${SM_EXE_NAME}" HAVE_FFMPEG) endif() if (CMAKE_BUILD_TYPE EQUAL "Debug") set(SM_APP_RELEASE_NAME "${SM_NAME_DEBUG}") elseif(CMAKE_BUILD_TYPE EQUAL "MinSizeRel") set(SM_APP_RELEASE_NAME "${SM_NAME_MINSIZEREL}") elseif(CMAKE_BUILD_TYPE EQUAL "RelWithDebInfo") set(SM_APP_RELEASE_NAME "${SM_NAME_RELWITHDEBINFO}") else() set(SM_APP_RELEASE_NAME "${SM_NAME_RELEASE}") endif() if (WITH_FULL_RELEASE) string(CONCAT SM_NAME_VERSION "${SM_EXE_NAME}" "-" "${SM_VERSION_TRADITIONAL}") set(SM_DMG_VERSION "${SM_VERSION_TRADITIONAL}") else() string(CONCAT SM_NAME_VERSION "${SM_EXE_NAME}" "-" "${SM_VERSION_FULL}") set(SM_DMG_VERSION "${SM_VERSION_FULL}") endif() set(SM_DMG_RELEASE_NAME "${SM_NAME_VERSION}-mac.dmg") add_custom_target(dmg COMMAND pushd ${SM_ROOT_DIR}\; mkdir dmgtmpdir\; cd dmgtmpdir\; mkdir ${SM_NAME_VERSION}\; cd ${SM_NAME_VERSION}\; mkdir ${SM_NAME_VERSION}\; cd ${SM_NAME_VERSION}\; cp -r "${SM_ROOT_DIR}/Announcers" .\; cp -r "${SM_ROOT_DIR}/BackgroundEffects" .\; cp -r "${SM_ROOT_DIR}/BackgroundTransitions" .\; cp -r "${SM_ROOT_DIR}/BGAnimations" .\; cp -r "${SM_ROOT_DIR}/Characters" .\; cp -r "${SM_ROOT_DIR}/Courses" .\; cp -r "${SM_ROOT_DIR}/Data" .\; cp -r "${SM_ROOT_DIR}/Docs" .\; cp -r "${SM_ROOT_DIR}/Manual" .\; cp -r "${SM_ROOT_DIR}/NoteSkins" .\; cp -r "${SM_ROOT_DIR}/Scripts" .\; cp -r "${SM_ROOT_DIR}/Songs" .\; cp -r "${SM_ROOT_DIR}/Themes" .\; cp -r "${SM_ROOT_DIR}/${SM_APP_RELEASE_NAME}.app" .\; cd ${SM_ROOT_DIR}\; hdiutil create "${SM_DMG_RELEASE_NAME}" -volname "StepMania ${SM_DMG_VERSION}" -srcfolder "dmgtmpdir/${SM_NAME_VERSION}/" -ov\; rm -rf dmgtmpdir\; popd\; ) # Add the ability to copy the resource file. add_custom_command(TARGET "${SM_EXE_NAME}" POST_BUILD COMMAND ${CMAKE_COMMAND} -E make_directory "$/../Resources" COMMAND ${CMAKE_COMMAND} -E copy "${SM_XCODE_DIR}/smicon.icns" "$/../Resources/" COMMAND ${CMAKE_COMMAND} -E copy "${SM_XCODE_DIR}/Hardware.plist" "$/../Resources/" ) else() # Linux set_target_properties("${SM_EXE_NAME}" PROPERTIES RUNTIME_OUTPUT_DIRECTORY "${SM_ROOT_DIR}" RUNTIME_OUTPUT_DIRECTORY_RELEASE "${SM_ROOT_DIR}" RUNTIME_OUTPUT_DIRECTORY_DEBUG "${SM_ROOT_DIR}" RUNTIME_OUTPUT_DIRECTORY_MINSIZEREL "${SM_ROOT_DIR}" RUNTIME_OUTPUT_DIRECTORY_RELWITHDEBINFO "${SM_ROOT_DIR}" ) if(${WITH_CRASH_HANDLER}) sm_add_compile_definition("${SM_EXE_NAME}" CRASH_HANDLER) if(LINUX) # used only in the ArchHooks_Unix.cpp file sm_add_compile_definition("${SM_EXE_NAME}" BACKTRACE_METHOD_X86_LINUX) sm_add_compile_definition("${SM_EXE_NAME}" BACKTRACE_METHOD_TEXT="x86 custom backtrace") sm_add_compile_definition("${SM_EXE_NAME}" BACKTRACE_LOOKUP_METHOD_TEXT="backtrace_symbols") endif() endif() if (${HAS_PTHREAD}) sm_add_compile_definition("${SM_EXE_NAME}" HAVE_LIBPTHREAD) message("Host processor is ${CMAKE_SYSTEM_PROCESSOR}") if(CMAKE_SYSTEM_PROCESSOR MATCHES "x86_64") message("Host processor is 64bit") sm_add_compile_definition("${SM_EXE_NAME}" CPU_X86_64) else() message("Host processor is 32bit") sm_add_compile_definition("${SM_EXE_NAME}" CPU_X86) endif() endif() if (${HAS_FFMPEG}) sm_add_compile_definition("${SM_EXE_NAME}" HAVE_FFMPEG) endif() if (BSD) sm_add_compile_definition("${SM_EXE_NAME}" BSD) endif() if (GTK2_FOUND) sm_add_compile_definition("${SM_EXE_NAME}" HAVE_GTK) endif() sm_add_compile_definition("${SM_EXE_NAME}" UNIX) if("${CMAKE_SYSTEM}" MATCHES "Linux") sm_add_compile_definition("${SM_EXE_NAME}" LINUX) endif() endif() set_property(TARGET "${SM_EXE_NAME}" PROPERTY FOLDER "Internal Libraries") list(APPEND SMDATA_LINK_LIB "lua-5.1" "tomcrypt" "tommath" "zlib" "jsoncpp" "png" "glew" "jpeg" ) if (HAS_MP3) list(FIND SMDATA_LINK_LIB "jsoncpp" JSON_INDEX) if (WIN32 OR MACOSX) list(INSERT SMDATA_LINK_LIB ${JSON_INDEX} "mad") else() list(INSERT SMDATA_LINK_LIB ${JSON_INDEX} ${LIBMAD_LIBRARY}) endif() endif() if (NOT SYSTEM_PCRE_FOUND) list(APPEND SMDATA_LINK_LIB "pcre") endif() if (WIN32) list(APPEND SMDATA_LINK_LIB # The misc libraries are here. "${LIB_SWSCALE}" "${LIB_AVCODEC}" "${LIB_AVFORMAT}" "${LIB_AVUTIL}" ) if (WITH_OGG) list(APPEND SMDATA_LINK_LIB "ogg" "vorbis" "vorbisfile" ) endif() list(APPEND SMDATA_LINK_LIB "dbghelp.lib" "setupapi.lib" "hid.lib" ) get_filename_component(DIRECTX_LIBRARY_DIR "${DIRECTX_LIBRARIES}" DIRECTORY) sm_add_link_flag("${SM_EXE_NAME}" "/LIBPATH:\"${DIRECTX_LIBRARY_DIR}\"") sm_add_link_flag("${SM_EXE_NAME}" "/LIBPATH:\"${SM_EXTERN_DIR}/ffmpeg/lib\"") sm_add_link_flag("${SM_EXE_NAME}" "/LIBPATH:\"${SM_SRC_DIR}/archutils/Win32/ddk\"") sm_add_link_flag("${SM_EXE_NAME}" "/ERRORREPORT:SEND") sm_add_link_flag("${SM_EXE_NAME}" "/MAPINFO:EXPORTS") sm_add_link_flag("${SM_EXE_NAME}" "/SAFESEH:NO") sm_add_link_flag("${SM_EXE_NAME}" "/NOLOGO") sm_add_link_flag("${SM_EXE_NAME}" "/MAP") sm_add_link_flag("${SM_EXE_NAME}" "/NODEFAULTLIB:wininet.lib") sm_add_link_flag("${SM_EXE_NAME}" "/NODEFAULTLIB:msimg32.lib") sm_add_link_flag("${SM_EXE_NAME}" "/NODEFAULTLIB:libci.lib") set_target_properties("${SM_EXE_NAME}" PROPERTIES LINK_FLAGS_DEBUG "/NODEFAULTLIB:msvcrt.lib") set_target_properties("${SM_EXE_NAME}" PROPERTIES LINK_FLAGS_RELEASE "/SUBSYSTEM:WINDOWS") set_target_properties("${SM_EXE_NAME}" PROPERTIES LINK_FLAGS_MINSIZEREL "/SUBSYSTEM:WINDOWS") elseif(APPLE) # The following were removed from SMDATA_LINK_LIB to "match" StepMania's pbxproj. # ${MAC_FRAME_APPKIT} # ${MAC_FRAME_FOUNDATION} # "ffmpeg" list(INSERT SMDATA_LINK_LIB 0 ${MAC_FRAME_ACCELERATE} ${MAC_FRAME_CARBON} ${MAC_FRAME_COCOA} ${MAC_FRAME_IOKIT} ${MAC_FRAME_QUICKTIME} ${MAC_FRAME_OPENGL} ${MAC_FRAME_COREFOUNDATION} ${MAC_FRAME_AUDIOTOOLBOX} ${MAC_FRAME_AUDIOUNIT} ${MAC_FRAME_COREAUDIO} ${MAC_FRAME_CORESERVICES} "ogg" "theora" "vorbis" ) list(APPEND SMDATA_LINK_LIB "${BZIP2_LIBRARY_RELEASE}" "${ICONV_LIBRARIES}" "pcre" ) if(HAS_FFMPEG) list(APPEND SMDATA_LINK_LIB "${SM_FFMPEG_ROOT}/libavformat/libavformat.a" "${SM_FFMPEG_ROOT}/libavcodec/libavcodec.a" "${SM_FFMPEG_ROOT}/libswscale/libswscale.a" "${SM_FFMPEG_ROOT}/libavutil/libavutil.a" ) endif() else() # Unix / Linux # TODO: Remember to find and locate the zip archive files. list(FIND SMDATA_LINK_LIB "jpeg" JPEG_INDEX) sm_list_replace(SMDATA_LINK_LIB ${JPEG_INDEX} "${JPEG_LIBRARY}") if (HAS_FFMPEG) if(WITH_SYSTEM_FFMPEG) list(APPEND SMDATA_LINK_LIB "${FFMPEG_avformat_LIBRARY}" "${FFMPEG_avcodec_LIBRARY}" "${FFMPEG_swscale_LIBRARY}" "${FFMPEG_avutil_LIBRARY}" ) else() list(APPEND SMDATA_LINK_LIB "${SM_FFMPEG_ROOT}/libavformat/libavformat.a" "${SM_FFMPEG_ROOT}/libavcodec/libavcodec.a" "${SM_FFMPEG_ROOT}/libswscale/libswscale.a" "${SM_FFMPEG_ROOT}/libavutil/libavutil.a" ) endif() if(VA_FOUND) list(APPEND SMDATA_LINK_LIB ${VA_LIBRARY}) endif() endif() list(APPEND SMDATA_LINK_LIB "${DL_LIBRARY}" ) if(HAS_OGG) list(APPEND SMDATA_LINK_LIB "${VORBISFILE_LIBRARY}" "${VORBIS_LIBRARY}" "${OGG_LIBRARY}" ) endif() list(APPEND SMDATA_LINK_LIB "${OPENGL_LIBRARY}" ) if(GTK2_FOUND) list(APPEND SMDATA_LINK_LIB "${GTK2_LIBRARIES}" ) endif() list(APPEND SMDATA_LINK_LIB "${BZIP2_LIBRARIES}" "${ZLIB_LIBRARIES}" "${CMAKE_THREAD_LIBS_INIT}" ) if (HAS_ALSA) list(APPEND SMDATA_LINK_LIB ${ALSA_LIBRARIES}) endif() if (HAS_JACK) list(APPEND SMDATA_LINK_LIB ${JACK_LIBRARIES}) endif() if (HAS_OSS) # No mention of OSS libraries. sm_add_compile_definition("${SM_EXE_NAME}" "HAVE_OSS_VERSION=1") endif() if (HAS_PULSE) list(APPEND SMDATA_LINK_LIB ${PULSEAUDIO_LIBRARY}) # PACKAGE_NAME and PACKAGE_VERSION are only used in this scenario. Why is not clear. # TODO: Remove this silliness. sm_add_compile_definition("${SM_EXE_NAME}" PACKAGE_NAME="StepMania") set(PACKAGE_VERSION "${SM_VERSION_MAJOR}.${SM_VERSION_MINOR}") sm_add_compile_definition("${SM_EXE_NAME}" PACKAGE_VERSION="${PACKAGE_VERSION}") endif() if(X11_FOUND) list(APPEND SMDATA_LINK_LIB ${X11_LIBRARIES}) endif() if(PCRE_FOUND) list(APPEND SMDATA_LINK_LIB ${PCRE_LIBRARY}) endif() list(APPEND SMDATA_LINK_LIB ${XRANDR_LIBRARIES} ) list(REMOVE_ITEM SMDATA_LINK_LIB "zlib") endif() target_link_libraries("${SM_EXE_NAME}" ${SMDATA_LINK_LIB}) list(APPEND SM_INCLUDE_DIRS ${CMAKE_CURRENT_SOURCE_DIR} "${SM_SRC_DIR}/generated" ) if(NOT APPLE) list(APPEND SM_INCLUDE_DIRS "${SM_EXTERN_DIR}/glew-1.5.8/include" "${SM_EXTERN_DIR}/jsoncpp/include" "${SM_EXTERN_DIR}/zlib" ) if(MSVC) if (WITH_OGG) list(APPEND SM_INCLUDE_DIRS "${SM_EXTERN_DIR}/newogg/include" "${SM_EXTERN_DIR}/newvorbis/lib" "${SM_EXTERN_DIR}/newvorbis/include" ) endif() list(APPEND SM_INCLUDE_DIRS "${SM_EXTERN_DIR}/ffmpeg/include" ) else() if(WITH_OGG) list(APPEND SM_INCLUDE_DIRS "${SM_EXTERN_DIR}/vorbis" ) endif() list(APPEND SM_INCLUDE_DIRS "${JPEG_INCLUDE_DIR}" ) if (HAS_FFMPEG) if (WITH_SYSTEM_FFMPEG) list(APPEND SM_INCLUDE_DIRS "${FFMPEG_INCLUDE_DIR}") else() add_dependencies("${SM_EXE_NAME}" "ffmpeg") list(APPEND SM_INCLUDE_DIRS "${SM_FFMPEG_SRC_DIR}" "${SM_FFMPEG_ROOT}" ) endif() endif() if (HAS_GTK2) list(APPEND SM_INCLUDE_DIRS "${GTK2_INCLUDE_DIRS}") endif() if (X11_FOUND) list(APPEND SM_INCLUDE_DIRS "${X11_INCLUDE_DIR}") endif() if (PCRE_FOUND) list(APPEND SM_INCLUDE_DIRS "${PCRE_INCLUDE_DIR}") endif() endif() else() if(WITH_OGG) list(APPEND SM_INCLUDE_DIRS "${SM_EXTERN_DIR}/vorbis" ) endif() list(APPEND SM_INCLUDE_DIRS "archutils/Unix" ) if(HAS_FFMPEG) add_dependencies("${SM_EXE_NAME}" "ffmpeg") list(APPEND SM_INCLUDE_DIRS "${SM_FFMPEG_SRC_DIR}" "${SM_FFMPEG_ROOT}" ) endif() endif() if(WIN32) list(APPEND SM_INCLUDE_DIRS ${DIRECTX_INCLUDE_DIR} ) else() list(APPEND SM_INCLUDE_DIRS "${SM_EXTERN_DIR}/libpng/include" ) endif() target_include_directories("${SM_EXE_NAME}" PUBLIC ${SM_INCLUDE_DIRS}) if(WIN32) set(SM_INSTALL_DESTINATION ".") else() set(SM_INSTALL_DESTINATION "stepmania-5.0") endif() if(NOT APPLE) if(WIN32) set(SM_FULL_INSTALLATION_PATH_LIST "${SM_INSTALL_DESTINATION}" "Program") sm_join("${SM_FULL_INSTALLATION_PATH_LIST}" "/" SM_FULL_INSTALLATION_PATH) # Hardcoding the values for now since the foreach loop is not working as intended. install(TARGETS "${SM_EXE_NAME}" DESTINATION "${SM_FULL_INSTALLATION_PATH}") install(FILES "${SM_PROGRAM_DIR}/avcodec-55.dll" DESTINATION "${SM_FULL_INSTALLATION_PATH}") install(FILES "${SM_PROGRAM_DIR}/avformat-55.dll" DESTINATION "${SM_FULL_INSTALLATION_PATH}") install(FILES "${SM_PROGRAM_DIR}/avutil-52.dll" DESTINATION "${SM_FULL_INSTALLATION_PATH}") install(FILES "${SM_PROGRAM_DIR}/msvcp100.dll" DESTINATION "${SM_FULL_INSTALLATION_PATH}") install(FILES "${SM_PROGRAM_DIR}/msvcp110.dll" DESTINATION "${SM_FULL_INSTALLATION_PATH}") install(FILES "${SM_PROGRAM_DIR}/msvcr100.dll" DESTINATION "${SM_FULL_INSTALLATION_PATH}") install(FILES "${SM_PROGRAM_DIR}/msvcr110.dll" DESTINATION "${SM_FULL_INSTALLATION_PATH}") install(FILES "${SM_PROGRAM_DIR}/parallel_lights_io.dll" DESTINATION "${SM_FULL_INSTALLATION_PATH}") install(FILES "${SM_PROGRAM_DIR}/swscale-2.dll" DESTINATION "${SM_FULL_INSTALLATION_PATH}") install(FILES "${SM_PROGRAM_DIR}/vccorlib110.dll" DESTINATION "${SM_FULL_INSTALLATION_PATH}") install(FILES "${SM_PROGRAM_DIR}/zlib1.dll" DESTINATION "${SM_FULL_INSTALLATION_PATH}") install(FILES "${SM_PROGRAM_DIR}/StepMania.vdi" DESTINATION "${SM_FULL_INSTALLATION_PATH}") # foreach(SM_WINDOW_DLL "${SM_WINDOWS_PROGRAM_DLLS}") # install(FILES "${SM_WINDOW_DLL}" DESTINATION "${SM_INSTALL_DESTINATION}") # endforeach() else() install(TARGETS "${SM_EXE_NAME}" DESTINATION "${SM_INSTALL_DESTINATION}") endif() if (UNIX OR LINUX) install(FILES "${SM_ROOT_DIR}/GtkModule.so" LIBRARY DESTINATION "${SM_INSTALL_DESTINATION}" OPTIONAL) endif() install(DIRECTORY "${SM_ROOT_DIR}/Announcers" DESTINATION "${SM_INSTALL_DESTINATION}") install(DIRECTORY "${SM_ROOT_DIR}/BGAnimations" DESTINATION "${SM_INSTALL_DESTINATION}") install(DIRECTORY "${SM_ROOT_DIR}/Themes" DESTINATION "${SM_INSTALL_DESTINATION}") install(DIRECTORY "${SM_ROOT_DIR}/Characters" DESTINATION "${SM_INSTALL_DESTINATION}") install(DIRECTORY "${SM_ROOT_DIR}/Scripts" DESTINATION "${SM_INSTALL_DESTINATION}") install(DIRECTORY "${SM_ROOT_DIR}/Courses" DESTINATION "${SM_INSTALL_DESTINATION}") install(DIRECTORY "${SM_ROOT_DIR}/BackgroundEffects" DESTINATION "${SM_INSTALL_DESTINATION}") install(DIRECTORY "${SM_ROOT_DIR}/Data" DESTINATION "${SM_INSTALL_DESTINATION}") install(DIRECTORY "${SM_ROOT_DIR}/BackgroundTransitions" DESTINATION "${SM_INSTALL_DESTINATION}") install(DIRECTORY "${SM_ROOT_DIR}/Docs" DESTINATION "${SM_INSTALL_DESTINATION}") install(DIRECTORY "${SM_ROOT_DIR}/NoteSkins" DESTINATION "${SM_INSTALL_DESTINATION}") if (NOT SM_INSTALL_DESTINATION) install(DIRECTORY "${SM_ROOT_DIR}/Songs/StepMania 5" DESTINATION "Songs") install(FILES "${SM_ROOT_DIR}/Songs/instructions.txt" DESTINATION "Songs") else() install(DIRECTORY "${SM_ROOT_DIR}/Songs/StepMania 5" DESTINATION "${SM_INSTALL_DESTINATION}/Songs") install(FILES "${SM_ROOT_DIR}/Songs/instructions.txt" DESTINATION "${SM_INSTALL_DESTINATION}/Songs") endif() endif()