node_modules/
packages/*
publish/
+source/*/build/*
+source/build/*
source/build-cmake/*/build-win32/*
source/build-cmake/*/build/*
source/src/vm/libcpu_newdev/mame0185/*
--- /dev/null
+#message(FATAL_ERROR, "This CMakefile is still imcompleted, please use build/foo.sh, older build system")
+
+message("* common/common")
+# Build Common Sourcecode Project, Agar.
+# (C) 2014 K.Ohta <whatisthis.sowhat@gmail.com>
+# This is part of , but license is apache 2.2,
+# this part was written only me.
+
+cmake_minimum_required (VERSION 2.8)
+cmake_policy(SET CMP0011 NEW)
+
+
+project (CSP
+ DESCRIPTION "Common Source Code Project/Qt")
+
+#ToDo
+#set(CMAKE_SYSTEM_PROCESSOR ${ARCHITECTURE} CACHE STRING "Set processor to build.")
+set(USE_DEVICES_SHARED_LIB ON CACHE BOOL "Make devices as one shared library.")
+set(CMAKE_MODULE_PATH "${PROJECT_SOURCE_DIR}/build-cmake/cmake/single-build")
+set(BUILD_FM7 ON CACHE BOOL "Build for FM7")
+
+include(config)
+
+include(config_emufm7)
+
+include(config_fmtowns)
+
+
ENDIF (CMAKE_VERSION VERSION_GREATER 2.8.7)
FIND_PATH (LIBAV_ROOT_DIR
- NAMES include/libavcodec/avcodec.h
- include/libavdevice/avdevice.h
- include/libavfilter/avfilter.h
- include/libavutil/avutil.h
- include/libswresample/swresample.h
- include/libswscale/swscale.h
+ NAMES libavcodec/avcodec.h
+ libavdevice/avdevice.h
+ libavfilter/avfilter.h
+ libavutil/avutil.h
+ libswresample/swresample.h
+ libswscale/swscale.h
PATHS ENV LIBAVROOT
DOC "libav root directory")
--- /dev/null
+../../3rdparty/CompressExeWithUpx.cmake
\ No newline at end of file
--- /dev/null
+../../3rdparty/FindIconv.cmake
\ No newline at end of file
--- /dev/null
+../../3rdparty/FindLibAV.cmake
\ No newline at end of file
--- /dev/null
+../../3rdparty/findopencl/FindOpenCL.cmake
\ No newline at end of file
--- /dev/null
+# Function for setting up precompiled headers. Usage:
+#
+# add_library/executable(target
+# pchheader.c pchheader.cpp pchheader.h)
+#
+# add_precompiled_header(target pchheader.h
+# [FORCEINCLUDE]
+# [SOURCE_C pchheader.c]
+# [SOURCE_CXX pchheader.cpp])
+#
+# Options:
+#
+# FORCEINCLUDE: Add compiler flags to automatically include the
+# pchheader.h from every source file. Works with both GCC and
+# MSVC. This is recommended.
+#
+# SOURCE_C/CXX: Specifies the .c/.cpp source file that includes
+# pchheader.h for generating the pre-compiled header
+# output. Defaults to pchheader.c. Only required for MSVC.
+#
+# Caveats:
+#
+# * Its not currently possible to use the same precompiled-header in
+# more than a single target in the same directory (No way to set
+# the source file properties differently for each target).
+#
+# * MSVC: A source file with the same name as the header must exist
+# and be included in the target (E.g. header.cpp). Name of file
+# can be changed using the SOURCE_CXX/SOURCE_C options.
+#
+# License:
+#
+# Copyright (C) 2009-2017 Lars Christensen <larsch@belunktum.dk>
+#
+# Permission is hereby granted, free of charge, to any person
+# obtaining a copy of this software and associated documentation files
+# (the 'Software') deal in the Software without restriction,
+# including without limitation the rights to use, copy, modify, merge,
+# publish, distribute, sublicense, and/or sell copies of the Software,
+# and to permit persons to whom the Software is furnished to do so,
+# subject to the following conditions:
+#
+# The above copyright notice and this permission notice shall be
+# included in all copies or substantial portions of the Software.
+#
+# THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND,
+# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS
+# BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
+# ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
+# CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+# SOFTWARE.
+
+include(CMakeParseArguments)
+
+macro(combine_arguments _variable)
+ set(_result "")
+ foreach(_element ${${_variable}})
+ set(_result "${_result} \"${_element}\"")
+ endforeach()
+ string(STRIP "${_result}" _result)
+ set(${_variable} "${_result}")
+endmacro()
+
+function(export_all_flags _filename)
+ set(_include_directories "$<TARGET_PROPERTY:${_target},INCLUDE_DIRECTORIES>")
+ set(_compile_definitions "$<TARGET_PROPERTY:${_target},COMPILE_DEFINITIONS>")
+ set(_compile_flags "$<TARGET_PROPERTY:${_target},COMPILE_FLAGS>")
+ set(_compile_options "$<TARGET_PROPERTY:${_target},COMPILE_OPTIONS>")
+ set(_include_directories "$<$<BOOL:${_include_directories}>:-I$<JOIN:${_include_directories},\n-I>\n>")
+ set(_compile_definitions "$<$<BOOL:${_compile_definitions}>:-D$<JOIN:${_compile_definitions},\n-D>\n>")
+ set(_compile_flags "$<$<BOOL:${_compile_flags}>:$<JOIN:${_compile_flags},\n>\n>")
+ set(_compile_options "$<$<BOOL:${_compile_options}>:$<JOIN:${_compile_options},\n>\n>")
+ file(GENERATE OUTPUT "${_filename}" CONTENT "${_compile_definitions}${_include_directories}${_compile_flags}${_compile_options}\n")
+endfunction()
+
+function(add_precompiled_header _target _input)
+ cmake_parse_arguments(_PCH "FORCEINCLUDE" "SOURCE_CXX;SOURCE_C" "" ${ARGN})
+
+ get_filename_component(_input_we ${_input} NAME_WE)
+ if(NOT _PCH_SOURCE_CXX)
+ set(_PCH_SOURCE_CXX "${_input_we}.cpp")
+ endif()
+ if(NOT _PCH_SOURCE_C)
+ set(_PCH_SOURCE_C "${_input_we}.c")
+ endif()
+
+ if(MSVC)
+ set(_pch_cxx_pch "${CMAKE_CFG_INTDIR}/cxx_${_input_we}.pch")
+ set(_pch_c_pch "${CMAKE_CFG_INTDIR}/c_${_input_we}.pch")
+
+ get_target_property(sources ${_target} SOURCES)
+ foreach(_source ${sources})
+ set(_pch_compile_flags "")
+ if(_source MATCHES \\.\(cc|cxx|cpp|c\)$)
+ if(_source MATCHES \\.\(cpp|cxx|cc\)$)
+ set(_pch_header "${_input}")
+ set(_pch "${_pch_cxx_pch}")
+ else()
+ set(_pch_header "${_input}")
+ set(_pch "${_pch_c_pch}")
+ endif()
+
+ if(_source STREQUAL "${_PCH_SOURCE_CXX}")
+ set(_pch_compile_flags "${_pch_compile_flags} \"/Fp${_pch_cxx_pch}\" \"/Yc${_input}\"")
+ set(_pch_source_cxx_found TRUE)
+ set_source_files_properties("${_source}" PROPERTIES OBJECT_OUTPUTS "${_pch_cxx_pch}")
+ elseif(_source STREQUAL "${_PCH_SOURCE_C}")
+ set(_pch_compile_flags "${_pch_compile_flags} \"/Fp${_pch_c_pch}\" \"/Yc${_input}\"")
+ set(_pch_source_c_found TRUE)
+ set_source_files_properties("${_source}" PROPERTIES OBJECT_OUTPUTS "${_pch_c_pch}")
+ else()
+ if(_source MATCHES \\.\(cpp|cxx|cc\)$)
+ set(_pch_compile_flags "${_pch_compile_flags} \"/Fp${_pch_cxx_pch}\" \"/Yu${_input}\"")
+ set(_pch_source_cxx_needed TRUE)
+ set_source_files_properties("${_source}" PROPERTIES OBJECT_DEPENDS "${_pch_cxx_pch}")
+ else()
+ set(_pch_compile_flags "${_pch_compile_flags} \"/Fp${_pch_c_pch}\" \"/Yu${_input}\"")
+ set(_pch_source_c_needed TRUE)
+ set_source_files_properties("${_source}" PROPERTIES OBJECT_DEPENDS "${_pch_c_pch}")
+ endif()
+ if(_PCH_FORCEINCLUDE)
+ set(_pch_compile_flags "${_pch_compile_flags} /FI${_input}")
+ endif(_PCH_FORCEINCLUDE)
+ endif()
+
+ get_source_file_property(_object_depends "${_source}" OBJECT_DEPENDS)
+ if(NOT _object_depends)
+ set(_object_depends)
+ endif()
+ if(_PCH_FORCEINCLUDE)
+ list(APPEND _object_depends "${CMAKE_CURRENT_SOURCE_DIR}/${_pch_header}")
+ endif()
+
+ set_source_files_properties(${_source} PROPERTIES
+ COMPILE_FLAGS "${_pch_compile_flags}"
+ OBJECT_DEPENDS "${_object_depends}")
+ endif()
+ endforeach()
+
+ if(_pch_source_cxx_needed AND NOT _pch_source_cxx_found)
+ message(FATAL_ERROR "A source file ${_PCH_SOURCE_CXX} for ${_input} is required for MSVC builds. Can be set with the SOURCE_CXX option.")
+ endif()
+ if(_pch_source_c_needed AND NOT _pch_source_c_found)
+ message(FATAL_ERROR "A source file ${_PCH_SOURCE_C} for ${_input} is required for MSVC builds. Can be set with the SOURCE_C option.")
+ endif()
+ endif(MSVC)
+
+ if(CMAKE_COMPILER_IS_GNUCXX)
+ get_filename_component(_name ${_input} NAME)
+ set(_pch_header "${CMAKE_CURRENT_SOURCE_DIR}/${_input}")
+ set(_pch_binary_dir "${CMAKE_CURRENT_BINARY_DIR}/${_target}_pch")
+ set(_pchfile "${_pch_binary_dir}/${_input}")
+ set(_outdir "${CMAKE_CURRENT_BINARY_DIR}/${_target}_pch/${_name}.gch")
+ file(MAKE_DIRECTORY "${_outdir}")
+ set(_output_cxx "${_outdir}/.c++")
+ set(_output_c "${_outdir}/.c")
+
+ set(_pch_flags_file "${_pch_binary_dir}/compile_flags.rsp")
+ export_all_flags("${_pch_flags_file}")
+ set(_compiler_FLAGS "@${_pch_flags_file}")
+ add_custom_command(
+ OUTPUT "${_pchfile}"
+ COMMAND "${CMAKE_COMMAND}" -E copy "${_pch_header}" "${_pchfile}"
+ DEPENDS "${_pch_header}"
+ COMMENT "Updating ${_name}")
+ add_custom_command(
+ OUTPUT "${_output_cxx}"
+ COMMAND "${CMAKE_CXX_COMPILER}" ${_compiler_FLAGS} -x c++-header -o "${_output_cxx}" "${_pchfile}"
+ DEPENDS "${_pchfile}" "${_pch_flags_file}"
+ COMMENT "Precompiling ${_name} for ${_target} (C++)")
+ add_custom_command(
+ OUTPUT "${_output_c}"
+ COMMAND "${CMAKE_C_COMPILER}" ${_compiler_FLAGS} -x c-header -o "${_output_c}" "${_pchfile}"
+ DEPENDS "${_pchfile}" "${_pch_flags_file}"
+ COMMENT "Precompiling ${_name} for ${_target} (C)")
+
+ get_property(_sources TARGET ${_target} PROPERTY SOURCES)
+ foreach(_source ${_sources})
+ set(_pch_compile_flags "")
+
+ if(_source MATCHES \\.\(cc|cxx|cpp|c\)$)
+ get_source_file_property(_pch_compile_flags "${_source}" COMPILE_FLAGS)
+ if(NOT _pch_compile_flags)
+ set(_pch_compile_flags)
+ endif()
+ separate_arguments(_pch_compile_flags)
+ list(APPEND _pch_compile_flags -Winvalid-pch)
+ if(_PCH_FORCEINCLUDE)
+ list(APPEND _pch_compile_flags -include "${_pchfile}")
+ else(_PCH_FORCEINCLUDE)
+ list(APPEND _pch_compile_flags "-I${_pch_binary_dir}")
+ endif(_PCH_FORCEINCLUDE)
+
+ get_source_file_property(_object_depends "${_source}" OBJECT_DEPENDS)
+ if(NOT _object_depends)
+ set(_object_depends)
+ endif()
+ list(APPEND _object_depends "${_pchfile}")
+ if(_source MATCHES \\.\(cc|cxx|cpp\)$)
+ list(APPEND _object_depends "${_output_cxx}")
+ else()
+ list(APPEND _object_depends "${_output_c}")
+ endif()
+
+ combine_arguments(_pch_compile_flags)
+ set_source_files_properties(${_source} PROPERTIES
+ COMPILE_FLAGS "${_pch_compile_flags}"
+ OBJECT_DEPENDS "${_object_depends}")
+ endif()
+ endforeach()
+ endif(CMAKE_COMPILER_IS_GNUCXX)
+endfunction()
--- /dev/null
+../../3rdparty/SetMSVCDebugPath.cmake
\ No newline at end of file
--- /dev/null
+../../3rdparty/SplitDebugInformation.cmake
\ No newline at end of file
--- /dev/null
+##
+## Compile Gettext's I18N catalogue (foo.po to out.mo)
+## And install to dest.
+## (C) 2014 K.Ohta <whatisthis.sowhat@gmail.com>
+## requires find_package(Gettext) befor define this.
+## License: Apache 2
+##
+cmake_minimum_required (VERSION 2.6)
+
+function(compile_i18n_po_to_mo in target)
+ if(GETTEXT_FOUND)
+ add_custom_target(${target} ALL
+ DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/${in}
+ COMMAND ${GETTEXT_MSGFMT_EXECUTABLE}
+ ${CMAKE_CURRENT_SOURCE_DIR}/${in}
+ -o ${CMAKE_CURRENT_BINARY_DIR}/messages.mo
+ )
+ endif()
+endfunction(compile_i18n_po_to_mo)
+
+
+function(install_i18n_catalogue in dest)
+ if(GETTEXT_FOUND)
+ install(FILES ${CMAKE_CURRENT_SOURCE_DIR}/${in}
+ ${CMAKE_CURRENT_BINARY_DIR}/messages.mo
+ DESTINATION ${dest}/LC_MESSAGES)
+ endif()
+endfunction(install_i18n_catalogue)
+
--- /dev/null
+
+
+include(CheckFunctionExists)
+
+# Still not as one shared lib with win32
+if(WIN32)
+ set(USE_DEVICES_SHARED_LIB OFF)
+endif()
+
+if(USE_DEVICES_SHARED_LIB)
+ add_definitions(-DUSE_SHARED_DLL)
+ add_definitions(-DUSE_SHARED_UI_DLL)
+ add_definitions(-DUSE_SHARED_DEVICES_DLL)
+endif()
+
+
+#ccache
+find_program(USE_CCACHE ccache)
+if(USE_CCACHE)
+ SET_PROPERTY(GLOBAL PROPERTY RULE_LAUNCH_COMPILE ccache)
+endif()
+
+if(WIN32)
+ FIND_PACKAGE(Qt5Core REQUIRED)
+else()
+ FIND_PACKAGE(Qt5Widgets REQUIRED)
+endif()
+ FIND_PACKAGE(Qt5Gui REQUIRED)
+ FIND_PACKAGE(Qt5OpenGL REQUIRED)
+ include_directories(${Qt5Widgets_INCLUDE_DIRS})
+ include_directories(${Qt5Core_INCLUDE_DIRS})
+ include_directories(${Qt5Gui_INCLUDE_DIRS})
+ include_directories(${Qt5OpenGL_INCLUDE_DIRS})
+ add_definitions(-D_USE_OPENGL -DUSE_OPENGL)
+if(DEFINED QT5_ROOT_PATH)
+ SET(CMAKE_FIND_ROOT_PATH ${QT5_ROOT_PATH} ${CMAKE_FIND_ROOT_PATH})
+endif()
+
+#socket
+function(APPEND_SOCKET_FEATURE)
+ if(USE_SOCKET)
+ FIND_PACKAGE(Qt5Network REQUIRED)
+ include_directories(${Qt5Network_INCLUDE_DIRS})
+ endif()
+endfunction(APPEND_SOCKET_FEATURE)
+
+SET(USE_QT_5 ON)
+set(USE_QT5_4_APIS OFF CACHE BOOL "Build with Qt5.4 (or later) APIs if you can.")
+set(USE_GCC_OLD_ABI ON CACHE BOOL "Build with older GCC ABIs if you can.")
+set(USE_SDL2 ON CACHE BOOL "Build with libSDL2. DIsable is building with libSDL1.")
+set(USE_MOVIE_SAVER OFF CACHE BOOL "Save screen/audio as MP4 MOVIE. Needs libav .")
+set(USE_MOVIE_LOADER OFF CACHE BOOL "Load movie from screen for some VMs. Needs libav .")
+set(USE_LTO ON CACHE BOOL "Use link-time-optimization to build.")
+
+if(USE_LTO)
+ # set_property(DIRECTORY PROPERTY INTERPROCEDURAL_OPTIMIZATION true)
+else()
+ # set_property(DIRECTORY PROPERTY INTERPROCEDURAL_OPTIMIZATION false)
+endif()
+
+add_definitions(-D_USE_QT5)
+
+if(USE_QT5_4_APIS)
+ add_definitions(-D_USE_QT_5_4)
+else()
+ #add_definitions(-DQT_NO_VERSION_TAGGING)
+endif()
+
+if(USE_GCC_OLD_ABI)
+ add_definitions(-D_GLIBCXX_USE_CXX11_ABI=0)
+else()
+ add_definitions(-D_GLIBCXX_USE_CXX11_ABI=1)
+endif()
+
+SET(CMAKE_AUTOMOC OFF)
+SET(CMAKE_AUTORCC ON)
+SET(CMAKE_INCLUDE_CURRENT_DIR ON)
+
+add_definitions(-D_USE_QT)
+add_definitions(-DUSE_QT)
+add_definitions(-DQT_MAJOR_VERSION=${Qt5Widgets_VERSION_MAJOR})
+add_definitions(-DQT_MINOR_VERSION=${Qt5Widgets_VERSION_MINOR})
+
+if(USE_OPENMP)
+ find_package(OpenMP)
+ include_directories(${OPENMP_INCLUDE_PATH})
+ if(OPENMP_FOUND)
+ set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${OpenMP_C_FLAGS}")
+ set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${OpenMP_CXX_FLAGS}")
+ endif()
+endif()
+
+find_package(Threads)
+include_directories(${THREADS_INCLUDE_PATH})
+
+include(FindPkgConfig)
+
+find_package(Git)
+if(GIT_FOUND)
+ execute_process(COMMAND ${GIT_EXECUTABLE} rev-parse HEAD OUTPUT_VARIABLE __tstr)
+ string(FIND ${__tstr} "fatal" __notfound)
+ string(REPLACE "\n" "" __tstr2 ${__tstr})
+ if(${__notfound} EQUAL -1)
+ add_definitions(-D__GIT_REPO_VERSION=\"${__tstr2}\")
+ else()
+ add_definitions(-U__GIT_REPO_VERSION)
+ endif()
+endif()
+
+string(TIMESTAMP __build_date "%b %d,%Y %H:%M:%S UTC" UTC)
+add_definitions(-D__BUILD_DATE=\"${__build_date}\")
+
+include(FindLibAV)
+ if(LIBAV_FOUND)
+ add_definitions(-DUSE_LIBAV)
+ if(USE_MOVIE_SAVER)
+ add_definitions(-DUSE_MOVIE_SAVER)
+ endif()
+ if(USE_MOVIE_LOADER)
+ add_definitions(-DUSE_MOVIE_LOADER)
+ endif()
+ add_definitions(-D__STDC_CONSTANT_MACROS)
+ add_definitions(-D__STDC_FORMAT_MACROS)
+ else()
+ set(USE_MOVIE_SAVER OFF)
+ set(USE_MOVIE_LOADER OFF)
+ set(LIBAV_LIBRARIES "")
+ endif()
+
+if(USE_SDL2)
+ if(CMAKE_CROSSCOMPILING)
+ include_directories(${SDL2_INCLUDE_DIRS})
+ else()
+ pkg_search_module(SDL2 REQUIRED sdl2)
+ include_directories(${SDL2_INCLUDE_DIRS})
+ endif()
+ set(SDL_LIBS ${SDL2_LIBRARIES})
+ add_definitions(-DUSE_SDL2)
+else()
+ if(CMAKE_CROSSCOMPILING)
+ include_directories(${SDL_INCLUDE_DIRS})
+ set(SDL_LIBS ${SDL_LIBRARIES})
+ else()
+ include(FindSDL)
+ #pkg_search_module(SDL REQUIRED sdl)
+ #include_directories(${SDL_INCLUDE_DIRS})
+ include_directories(${SDL_INCLUDE_DIR})
+ set(SDL_LIBS ${SDL_LIBRARY})
+ endif()
+endif()
+
+include(FindZLIB)
+if(ZLIB_FOUND)
+ add_definitions(-DUSE_ZLIB)
+ include_directories(${ZLIB_INCLUDE_DIRS})
+endif()
+
+# GCC Only?
+if(CMAKE_COMPILER_IS_GNUCC)
+ set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -flax-vector-conversions")
+endif()
+
+if(CMAKE_COMPILER_IS_GNUCXX)
+ set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fpermissive -flax-vector-conversions")
+endif()
+
+
+check_function_exists("nanosleep" HAVE_NANOSLEEP)
+if(NOT HAVE_NANOSLEEP)
+ check_library_exists("rt" "nanosleep" "" LIB_RT_HAS_NANOSLEEP)
+endif(NOT HAVE_NANOSLEEP)
+
+if(LIB_RT_HAS_NANOSLEEP)
+ add_target_library(${EXEC_TARGET} rt)
+endif(LIB_RT_HAS_NANOSLEEP)
+
+if(HAVE_NANOSLEEP OR LIB_RT_HAS_NANOSLEEP)
+ add_definitions(-DHAVE_NANOSLEEP)
+endif(HAVE_NANOSLEEP OR LIB_RT_HAS_NANOSLEEP)
+
+
+set(SRC_BASE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/../../../src)
+
+if(USE_QT_5)
+ if(NOT WIN32)
+ set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fPIC")
+ set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fPIC")
+ endif()
+endif()
+
+#include(simd-x86)
+
+if(LIBAV_FOUND)
+ include_directories(${LIBAV_INCLUDE_DIRS})
+endif()
+
+# Now make DLLs
+include_directories(
+ "${PROJECT_SOURCE_DIR}/src"
+ "${PROJECT_SOURCE_DIR}/src/vm"
+ "${PROJECT_SOURCE_DIR}/src/qt/common"
+ "${PROJECT_SOURCE_DIR}/src/qt/gui"
+ "${PROJECT_SOURCE_DIR}/src/qt/debugger"
+ "${PROJECT_SOURCE_DIR}/src/qt"
+)
+
+#find_library(AVCODEC_LIBRARY avcodec)
+add_subdirectory("${PROJECT_SOURCE_DIR}/src/qt" osd)
+add_subdirectory("${PROJECT_SOURCE_DIR}/src/qt/avio" qt/avio)
+add_subdirectory("${PROJECT_SOURCE_DIR}/src/qt/gui" qt/gui)
+add_subdirectory("${PROJECT_SOURCE_DIR}/src/qt/emuutils" emu_utils)
+if(USE_DEVICES_SHARED_LIB)
+ add_subdirectory("${PROJECT_SOURCE_DIR}/src/vm/common_vm" vm/)
+ add_subdirectory("${PROJECT_SOURCE_DIR}/src/vm/fmgen" vm/fmgen)
+else()
+ add_subdirectory("${PROJECT_SOURCE_DIR}/src" common)
+ add_subdirectory("${PROJECT_SOURCE_DIR}/src/vm" vm)
+endif()
+
+function(ADD_VM VM_NAME EXE_NAME VMDEF)
+ set(COMMON_DIRECTORY ${PROJECT_SOURCE_DIR}/src/qt/common)
+ set(s_qt_common_headers
+ ${COMMON_DIRECTORY}/emu_thread.h
+ ${COMMON_DIRECTORY}/mainwidget.h
+ ${COMMON_DIRECTORY}/../osd.h
+ )
+ if(USE_SOCKET)
+ set(s_qt_common_headers ${s_qt_common_headers} ${COMMON_DIRECTORY}/../osd_socket.h)
+ endif()
+ QT5_WRAP_CPP(s_qt_common_headers_MOC ${s_qt_common_headers})
+ set(QT_COMMON_BASE
+ ${COMMON_DIRECTORY}/main.cpp
+ ${COMMON_DIRECTORY}/qt_utils.cpp
+ ${COMMON_DIRECTORY}/menu_flags.cpp
+ ${COMMON_DIRECTORY}/emu_thread.cpp
+ ${COMMON_DIRECTORY}/emu_thread_slots.cpp
+ ${COMMON_DIRECTORY}/util_bubble2.cpp
+ ${COMMON_DIRECTORY}/util_main.cpp
+ ${COMMON_DIRECTORY}/../osd.cpp
+ ${COMMON_DIRECTORY}/../osd_wrapper.cpp
+ )
+
+ if(WIN32)
+ add_executable(${EXE_NAME} WIN32
+ ${PROJECT_SOURCE_DIR}/src/vm/event.cpp
+ ${VMFILES}
+ ${PROJECT_SOURCE_DIR}/src/emu.cpp
+ ${COMMON_DIRECTORY}/../gui/qt_main.cpp
+ ${QT_COMMON_BASE}
+ ${s_qt_common_headers_MOC}
+ )
+ else()
+ add_executable(${EXE_NAME}
+ ${PROJECT_SOURCE_DIR}/src/vm/event.cpp
+ ${VMFILES}
+ ${PROJECT_SOURCE_DIR}/src/emu.cpp
+ ${QT_COMMON_BASE}
+ ${s_qt_common_headers_MOC}
+ )
+ endif()
+ if(USE_SOCKET)
+ QT5_USE_MODULES(${EXE_NAME} Widgets Core Gui OpenGL Network)
+ else()
+ QT5_USE_MODULES(${EXE_NAME} Widgets Core Gui OpenGL)
+ endif()
+ target_include_directories(${EXE_NAME}
+ PRIVATE "${PROJECT_SOURCE_DIR}/src/qt/machines/${VM_NAME}"
+ PRIVATE "${PROJECT_SOURCE_DIR}/src/vm/${VM_NAME}"
+ )
+ if(LIBAV_FOUND)
+ target_include_directories(${EXE_NAME} PUBLIC
+ "${PROJECT_SOURCE_DIR}/src/qt/avio"
+ )
+ endif()
+# if(WITH_DEBUGGER)
+ set(DEBUG_LIBS qt_debugger_${EXE_NAME})
+# target_include_directories(${EXE_NAME} PUBLIC
+# PUBLIC "${PROJECT_SOURCE_DIR}/src/qt/debugger"
+# )
+# else()
+# set(DEBUG_LIBS)
+# endif()
+ if(NOT USE_DEVICES_SHARED_LIB)
+ if(USE_FMGEN)
+ set(VM_APPEND_LIBS fmgen)
+ else()
+ set(VM_APPEND_LIBS)
+ endif()
+ endif()
+ if(WIN32)
+ set(LOCAL_LIBS
+ common_emu
+ qt_${EXE_NAME}
+ vm_${EXE_NAME}
+ vm_vm
+ ${VM_APPEND_LIBS}
+ ${DEBUG_LIBS}
+ common_${EXE_NAME}
+ )
+ else()
+ set(LOCAL_LIBS
+ qt_${EXE_NAME}
+ vm_${EXE_NAME}
+ vm_vm
+ ${VM_APPEND_LIBS}
+ ${DEBUG_LIBS}
+ common_${EXE_NAME}
+ )
+ endif()
+ if(WIN32)
+ set(BUNDLE_LIBS
+ ${OPENGL_LIBRARY}
+ ${OPENCL_LIBRARY}
+ ${GETTEXT_LIBRARY}
+ ${OPENMP_LIBRARY}
+ ${LIBAV_LIBRARIES}
+ ${SDL_LIBS}
+ ${LIBAV_LIBRARIES}
+ ${ADDITIONAL_LIBRARIES}
+ ${ZLIB_LIBRARIES}
+ )
+ else()
+ add_definitions(-D_UNICODE)
+ set(BUNDLE_LIBS
+ ${OPENMP_LIBRARY}
+ ${SDL_LIBS}
+ ${ADDITIONAL_LIBRARIES}
+ ${BUNDLE_LIBS}
+ ${QT_LIBRARIES}
+ ${ZLIB_LIBRARIES}
+ ${THREADS_LIBRARY}
+ )
+ endif()
+ if(WIN32)
+ set(LOCAL_LIBS
+ qt_${EXE_NAME}
+ vm_${EXE_NAME}
+ vm_vm
+ ${VM_APPEND_LIBS}
+ ${DEBUG_LIBS}
+ common_${EXE_NAME}
+ )
+ else()
+ set(LOCAL_LIBS
+ qt_${EXE_NAME}
+ vm_${EXE_NAME}
+ ${VM_APPEND_LIBS}
+ ${DEBUG_LIBS}
+ common_${EXE_NAME}
+ )
+ endif()
+ if(USE_DEVICES_SHARED_LIB)
+ set(BUNDLE_LIBS
+ ${BUNDLE_LIBS}
+ -lCSPosd
+ -lCSPcommon_vm
+ -lCSPfmgen
+ -lCSPgui
+ -lCSPemu_utils
+ -lCSPavio)
+ else()
+ set(BUNDLE_LIBS
+ ${BUNDLE_LIBS}
+ -lCSPosd
+ -lCSPgui
+ -lCSPavio)
+ endif()
+
+ # Subdirectories
+ add_subdirectory("${PROJECT_SOURCE_DIR}/src" common/${EXE_NAME} EXCLUDE_FROM_ALL)
+ add_subdirectory("${PROJECT_SOURCE_DIR}/src/vm/${VM_NAME}" vm/${EXE_NAME} EXCLUDE_FROM_ALL)
+ if(NOT USE_DEVICES_SHARED_LIB)
+ if(USE_FMGEN)
+ add_subdirectory("${PROJECT_SOURCE_DIR}/src/vm/fmgen" vm/fmgen_${EXE_NAME} EXCLUDE_FROM_ALL)
+ endif()
+ endif()
+ add_subdirectory("${PROJECT_SOURCE_DIR}/src/qt/machines/${VM_NAME}" qt/${EXE_NAME} EXCLUDE_FROM_ALL)
+# if(WITH_DEBUGGER)
+ add_subdirectory("${PROJECT_SOURCE_DIR}/src/qt/debugger" qt/debugger_${EXE_NAME} EXCLUDE_FROM_ALL)
+# endif()
+# add_subdirectory("${PROJECT_SOURCE_DIR}/src/qt/common" qt/common EXCLUDE_FROM_ALL)
+ add_dependencies(${EXE_NAME}
+ CSPosd
+ CSPcommon_vm
+ CSPfmgen
+ common_${EXE_NAME}
+ CSPemu_utils
+ CSPgui
+ CSPavio
+ qt_debugger_${EXE_NAME}
+ qt_${EXE_NAME}
+ )
+ target_compile_definitions(${EXE_NAME}
+ PRIVATE ${VMDEF}
+ )
+ target_compile_definitions(vm_${EXE_NAME}
+ PRIVATE ${VMDEF}
+ )
+ target_compile_definitions(qt_${EXE_NAME}
+ PUBLIC ${VMDEF}
+ )
+ target_compile_definitions(qt_debugger_${EXE_NAME}
+ PRIVATE ${VMDEF}
+ )
+ target_compile_definitions(common_${EXE_NAME}
+ PRIVATE ${VMDEF}
+ )
+
+ if(WIN32)
+ target_link_libraries(${EXE_NAME}
+ ${LOCAL_LIBS}
+ ${BUNDLE_LIBS}
+ -lpthread
+ )
+ else()
+ target_link_libraries(${EXE_NAME}
+ ${LOCAL_LIBS}
+ ${BUNDLE_LIBS}
+ -lpthread)
+ endif()
+ install(TARGETS ${EXE_NAME} DESTINATION bin)
+endfunction()
+
+
--- /dev/null
+# Build Common Sourcecode Project, Qt.
+# (C) 2014 K.Ohta <whatisthis.sowhat@gmail.com>
+# This is part of , but license is apache 2.2,
+# this part was written only me.
+
+message("")
+message("** Start of configure CommonSourceProject,FM-8/7/77/AV, Qt **")
+message("")
+
+set(USE_FMGEN ON)
+set(WITH_DEBUGGER ON)
+set(WITH_MOUSE ON)
+set(WITH_JOYSTICK ON)
+
+#set(VMFILES_FM7
+# event.cpp
+#)
+
+set(VMFILES_LIB_FM7
+ and.cpp
+ datarec.cpp
+ ym2203.cpp
+ pcm1bit.cpp
+ disk.cpp
+ mb8877.cpp
+ prnfile.cpp
+ or.cpp
+ noise.cpp
+ i8251.cpp
+)
+
+set(BUILD_FM7 ON CACHE BOOL "Build for FM7")
+set(BUILD_FMNEW7 ON CACHE BOOL "Build for FM7")
+set(BUILD_FM8 ON CACHE BOOL "Build for FM8")
+set(BUILD_FM77 ON CACHE BOOL "Build for FM77")
+set(BUILD_FM77L2 ON CACHE BOOL "Build for FM77L2")
+set(BUILD_FM77L4 ON CACHE BOOL "Build for FM77L4")
+set(BUILD_FM77AV ON CACHE BOOL "Build for FM77AV")
+set(BUILD_FM77AV20 ON CACHE BOOL "Build for FM77AV20")
+set(BUILD_FM77AV40 ON CACHE BOOL "Build for FM77AV40")
+set(BUILD_FM77AV40SX ON CACHE BOOL "Build for FM77AV40SX")
+set(BUILD_FM77AV40EX ON CACHE BOOL "Build for FM77AV40EX")
+set(FM77_EXTRAM_PAGES "12" CACHE STRING "Set banks of EXTRAM of FM77/FM77AV40, bank = 64Kbytes")
+
+set(FM7_DEBUG_FDC OFF CACHE BOOL "With debug FDC")
+set(USE_OPENMP ON CACHE BOOL "Build using OpenMP")
+set(USE_OPENGL ON CACHE BOOL "Build using OpenGL")
+
+include(detect_target_cpu)
+# set entry
+
+add_definitions(-D_CONFIGURE_WITH_CMAKE)
+
+if(FM7_DEBUG_FDC)
+ add_definitions(-D_FM7_FDC_DEBUG)
+ add_definitions(-D_DEBUG_LOG)
+endif()
+
+if(BUILD_FM7)
+ set(RESOURCE ${CMAKE_CURRENT_SOURCE_DIR}/../../../src/qt/common/qrc/fm7.qrc)
+ ADD_VM(fm7 emufm7 _FM7)
+endif()
+if(BUILD_FM8)
+ #set(VMFILES_LIB_FM7 ${VMFILES_LIB_FM7} ay_3_891x.cpp)
+ #set(FLAG_USE_Z80 ON)
+ #add_definitions(-DBUILD_Z80)
+ set(RESOURCE ${CMAKE_CURRENT_SOURCE_DIR}/../../../src/qt/common/qrc/fm8.qrc)
+ ADD_VM(fm7 emufm8 _FM8)
+endif()
+if(BUILD_FM77)
+ #set(VMFILES_LIB_FM7 ${VMFILES_LIB_FM7} ay_3_891x.cpp)
+ #set(FLAG_USE_Z80 ON)
+ #add_definitions(-DBUILD_Z80)
+ set(RESOURCE ${CMAKE_CURRENT_SOURCE_DIR}/../../../src/qt/common/qrc/fm77.qrc)
+ ADD_VM(fm7 emufm77 _FM77)
+ target_compile_definitions(emufm77
+ PRIVATE -DFM77_EXRAM_BANKS=${FM77_EXTRAM_PAGES}
+ )
+endif()
+if(BUILD_FM77L4)
+ #set(VMFILES_LIB_FM7 ${VMFILES_LIB_FM7} ay_3_891x.cpp)
+ #set(FLAG_USE_Z80 ON)
+ set(RESOURCE ${CMAKE_CURRENT_SOURCE_DIR}/../../../src/qt/common/qrc/fm77l4.qrc)
+ ADD_VM(fm7 emufm77l4 _FM77L4)
+ target_compile_definitions(emufm77l4
+ PRIVATE -DFM77_EXRAM_BANKS=${FM77_EXTRAM_PAGES}
+ )
+endif()
+if(BUILD_FM77AV)
+ #set(VMFILES_LIB_FM7 ${VMFILES_LIB_FM7} beep.cpp)
+ set(RESOURCE ${CMAKE_CURRENT_SOURCE_DIR}/../../../src/qt/common/qrc/fm77av.qrc)
+ ADD_VM(fm7 emufm77av _FM77AV)
+endif()
+if(BUILD_FM77AV20)
+ #set(VMFILES_LIB_FM7 ${VMFILES_LIB_FM7} beep.cpp)
+ set(RESOURCE ${CMAKE_CURRENT_SOURCE_DIR}/../../../src/qt/common/qrc/fm77av20.qrc)
+ ADD_VM(fm7 emufm77av20 _FM77AV20)
+endif()
+if(BUILD_FM77AV20EX)
+ #set(VMFILES_LIB_FM7 ${VMFILES_LIB_FM7} beep.cpp)
+ set(RESOURCE ${CMAKE_CURRENT_SOURCE_DIR}/../../../src/qt/common/qrc/fm77av20ex.qrc)
+ ADD_VM(fm7 emufm77av20ex _FM77AV20EX)
+endif()
+if(BUILD_FM77AV40)
+ #set(VMFILES_LIB_FM7 ${VMFILES_LIB_FM7} beep.cpp)
+ set(RESOURCE ${CMAKE_CURRENT_SOURCE_DIR}/../../../src/qt/common/qrc/fm77av40.qrc)
+ ADD_VM(fm7 emufm77av40 _FM77AV40)
+ target_compile_definitions(emufm77av40
+ PRIVATE -DFM77_EXRAM_BANKS=${FM77_EXTRAM_PAGES}
+ )
+endif()
+if(BUILD_FM77AV40SX)
+ #set(VMFILES_LIB_FM7 ${VMFILES_LIB_FM7} beep.cpp)
+ set(RESOURCE ${CMAKE_CURRENT_SOURCE_DIR}/../../../src/qt/common/qrc/fm77av40sx.qrc)
+ ADD_VM(fm7 emufm77av40sx _FM77AV40SX)
+ target_compile_definitions(emufm77av40sx
+ PRIVATE -DFM77_EXRAM_BANKS=${FM77_EXTRAM_PAGES}
+ )
+endif()
+if(BUILD_FM77AV40EX)
+ #set(VMFILES_LIB_FM7 ${VMFILES_LIB_FM7} beep.cpp)
+ set(RESOURCE ${CMAKE_CURRENT_SOURCE_DIR}/../../../src/qt/common/qrc/fm77av40ex.qrc)
+ ADD_VM(fm7 emufm77av40ex _FM77AV40EX)
+ target_compile_definitions(emufm77av40ex
+ PRIVATE -DFM77_EXRAM_BANKS=${FM77_EXTRAM_PAGES}
+ )
+endif()
+
+
+
+
+
+
--- /dev/null
+set(VMFILES_LIB
+ i386.cpp
+ noise.cpp
+ pcm1bit.cpp
+ i8251.cpp
+ i8253.cpp
+ i8259.cpp
+ io.cpp
+ upd71071.cpp
+ mb8877.cpp
+
+ scsi_dev.cpp
+ scsi_hdd.cpp
+ scsi_cdrom.cpp
+
+ disk.cpp
+ prnfile.cpp
+ harddisk.cpp
+)
+set(VMFILES
+ ${PROJECT_SOURCE_DIR}/src/vm/scsi_host.cpp
+ ${PROJECT_SOURCE_DIR}/src/vm/msm58321.cpp
+)
+
+set(BUILD_FMTOWNS_1 ON CACHE BOOL "Build for FM-Towns Model 1")
+#set(BUILD_FMTOWNS_2 ON CACHE BOOL "Build for FM-Towns Model 2")
+#set(BUILD_FMTOWNS_2F ON CACHE BOOL "Build for FM-Towns 2F")
+set(BUILD_FMTOWNS_2H ON CACHE BOOL "Build for FM-Towns 2H")
+#set(BUILD_FMTOWNS_20F ON CACHE BOOL "Build for FM-Towns 20F")
+set(BUILD_FMTOWNS_20H ON CACHE BOOL "Build for FM-Towns 20H")
+#set(BUILD_FMTOWNS2_UX20 ON CACHE BOOL "Build for FM-Towns2 UX20")
+#set(BUILD_FMTOWNS2_UX40 ON CACHE BOOL "Build for FM-Towns2 UX40")
+set(BUILD_FMTOWNS2_CX20 ON CACHE BOOL "Build for FM-Towns2 CX20")
+set(BUILD_FMTOWNS2_CX40 ON CACHE BOOL "Build for FM-Towns2 CX40")
+#set(BUILD_FMTOWNS2_CX100 ON CACHE BOOL "Build for FM-Towns2 CX100")
+#set(BUILD_FMTOWNS2_UG10 ON CACHE BOOL "Build for FM-Towns2 UG10")
+#set(BUILD_FMTOWNS2_UG20 ON CACHE BOOL "Build for FM-Towns2 UG20")
+#set(BUILD_FMTOWNS2_UG40 ON CACHE BOOL "Build for FM-Towns2 UG40")
+#set(BUILD_FMTOWNS2_UG80 ON CACHE BOOL "Build for FM-Towns2 UG80")
+#set(BUILD_FMTOWNS2_HG20 ON CACHE BOOL "Build for FM-Towns2 HG20")
+#set(BUILD_FMTOWNS2_HG40 ON CACHE BOOL "Build for FM-Towns2 HG40")
+#set(BUILD_FMTOWNS2_HG100 ON CACHE BOOL "Build for FM-Towns2 HG100")
+#set(BUILD_FMTOWNS2_HR20 ON CACHE BOOL "Build for FM-Towns2 HR20")
+set(BUILD_FMTOWNS2_HR100 ON CACHE BOOL "Build for FM-Towns2 HR100")
+#set(BUILD_FMTOWNS2_HR200 ON CACHE BOOL "Build for FM-Towns2 HR200")
+
+if(BUILD_FMTOWNS_1)
+ set(RESOURCE ${CMAKE_SOURCE_DIR}/../../src/qt/common/qrc/fmtowns.qrc)
+ ADD_VM(fmtowns emufmtowns _FMTOWNS_1)
+ ## ToDo
+endif()
+
+if(BUILD_FMTOWNS_2)
+ set(RESOURCE ${CMAKE_SOURCE_DIR}/../../src/qt/common/qrc/fmtowns.qrc)
+ ADD_VM(fmtowns emufmtowns2 _FMTOWNS_2)
+ ## ToDo
+endif()
+if(BUILD_FMTOWNS_1F)
+ set(RESOURCE ${CMAKE_SOURCE_DIR}/../../src/qt/common/qrc/fmtowns.qrc)
+ ADD_VM(fmtowns emufmtowns1F _FMTOWNS_1F)
+ ## ToDo
+endif()
+if(BUILD_FMTOWNS_2F)
+ set(RESOURCE ${CMAKE_SOURCE_DIR}/../../src/qt/common/qrc/fmtowns.qrc)
+ ADD_VM(fmtowns emufmtowns2F _FMTOWNS_2F)
+ ## ToDo
+endif()
+if(BUILD_FMTOWNS_1H)
+ set(RESOURCE ${CMAKE_SOURCE_DIR}/../../src/qt/common/qrc/fmtowns.qrc)
+ ADD_VM(fmtowns emufmtowns1H _FMTOWNS_1H)
+ ## ToDo
+endif()
+if(BUILD_FMTOWNS_2H)
+ set(RESOURCE ${CMAKE_SOURCE_DIR}/../../src/qt/common/qrc/fmtowns.qrc)
+ ADD_VM(fmtowns emufmtowns2H _FMTOWNS_2H)
+ ## ToDo
+endif()
+
+if(BUILD_FMTOWNS_10F)
+ set(RESOURCE ${CMAKE_SOURCE_DIR}/../../src/qt/common/qrc/fmtowns.qrc)
+ ADD_VM(fmtowns emufmtowns10F _FMTOWNS_10F)
+ ## ToDo
+endif()
+if(BUILD_FMTOWNS_20F)
+ set(RESOURCE ${CMAKE_SOURCE_DIR}/../../src/qt/common/qrc/fmtowns.qrc)
+ ADD_VM(fmtowns emufmtowns20F _FMTOWNS_20F)
+ ## ToDo
+endif()
+if(BUILD_FMTOWNS_10H)
+ set(RESOURCE ${CMAKE_SOURCE_DIR}/../../src/qt/common/qrc/fmtowns.qrc)
+ ADD_VM(fmtowns emufmtowns10H _FMTOWNS_10H)
+ ## ToDo
+endif()
+if(BUILD_FMTOWNS_20H)
+ set(RESOURCE ${CMAKE_SOURCE_DIR}/../../src/qt/common/qrc/fmtowns.qrc)
+ ADD_VM(fmtowns emufmtowns20H _FMTOWNS_20H)
+ ## ToDo
+endif()
+
+if(BUILD_FMTOWNS2_UX20)
+ set(RESOURCE ${CMAKE_SOURCE_DIR}/../../src/qt/common/qrc/fmtowns.qrc)
+ ADD_VM(fmtowns emufmtowns2UX20 _FMTOWNS2_UX20)
+ ## ToDo
+endif()
+if(BUILD_FMTOWNS2_UX40)
+ set(RESOURCE ${CMAKE_SOURCE_DIR}/../../src/qt/common/qrc/fmtowns.qrc)
+ ADD_VM(fmtowns emufmtowns2UX40 _FMTOWNS2_UX40)
+ ## ToDo
+endif()
+if(BUILD_FMTOWNS2_CX20)
+ set(RESOURCE ${CMAKE_SOURCE_DIR}/../../src/qt/common/qrc/fmtowns.qrc)
+ ADD_VM(fmtowns emufmtowns2CX20 _FMTOWNS2_CX20)
+ ## ToDo
+endif()
+if(BUILD_FMTOWNS2_CX40)
+ set(RESOURCE ${CMAKE_SOURCE_DIR}/../../src/qt/common/qrc/fmtowns.qrc)
+ ADD_VM(fmtowns emufmtowns2CX40 _FMTOWNS2_CX40)
+ ## ToDo
+endif()
+if(BUILD_FMTOWNS2_CX100)
+ set(RESOURCE ${CMAKE_SOURCE_DIR}/../../src/qt/common/qrc/fmtowns.qrc)
+ ADD_VM(fmtowns emufmtowns2CX100 _FMTOWNS2_CX100)
+ ## ToDo
+endif()
+
+if(BUILD_FMTOWNS2_HR20)
+ set(RESOURCE ${CMAKE_SOURCE_DIR}/../../src/qt/common/qrc/fmtowns.qrc)
+ ADD_VM(fmtowns emufmtowns2HR20 _FMTOWNS2_HR20)
+ ## ToDo
+endif()
+if(BUILD_FMTOWNS2_HR100)
+ set(RESOURCE ${CMAKE_SOURCE_DIR}/../../src/qt/common/qrc/fmtowns.qrc)
+ ADD_VM(fmtowns emufmtowns2HR100 _FMTOWNS2_HR100)
+ ## ToDo
+endif()
+if(BUILD_FMTOWNS2_HR200)
+ set(RESOURCE ${CMAKE_SOURCE_DIR}/../../src/qt/common/qrc/fmtowns.qrc)
+ ADD_VM(fmtowns emufmtowns2HR200 _FMTOWNS2_HR200)
+ ## ToDo
+endif()
--- /dev/null
+# Set simd X86.
+# (C) 2014 K.Ohta <whatisthis.sowhat@gmail.com>
+
+# Detect host CPU
+if(UNIX)
+ # See http://stackoverflow.com/questions/11944060/how-to-detect-target-architecture-using-cmake
+ EXECUTE_PROCESS( COMMAND uname -m COMMAND tr -d '\n' OUTPUT_VARIABLE ARCHITECTURE )
+elseif(WIN32)
+ set(ARCHITECTURE "ia32")
+else()
+ # Assume Unix.
+ # See http://stackoverflow.com/questions/11944060/how-to-detect-target-architecture-using-cmake
+ EXECUTE_PROCESS( COMMAND uname -m COMMAND tr -d '\n' OUTPUT_VARIABLE ARCHITECTURE )
+endif()
--- /dev/null
+# Set simd X86.
+# (C) 2014 K.Ohta <whatisthis.sowhat@gmail.com>
+# This is part of XM7/SDL, but license is apache 2.2,
+# this part was written only me.
+
+if((CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64") OR
+ (CMAKE_SYSTEM_PROCESSOR STREQUAL "x86") OR
+ (CMAKE_SYSTEM_PROCESSOR STREQUAL "ia32") OR
+ (CMAKE_SYSTEM_PROCESSOR STREQUAL "amd64"))
+ set(USE_SSE2 ON CACHE BOOL "Using SSE2 SIMD instructions, sometimes faster if enabled.")
+# set(USE_MMX ON CACHE BOOL "Using MMX SIMD instructions, sometimes faster if enabled.")
+endif()
+
+
+if(USE_SSE2)
+# set(LOCAL_LIBS ${LOCAL_LIBS} common_scaler-sse2)
+ add_definitions(-DUSE_SSE2)
+# add_subdirectory(sdl/vram/sse2)
+# add_subdirectory(../../src/agar/common/scaler/sse2 agar/common/scaler/sse2)
+endif()
+
+#if(USE_SSE)
+# add_definitions(-DUSE_SSE)
+#endif()
+
+#if(USE_MMX)
+# add_definitions(-DUSE_MMX)
+# set(LOCAL_LIBS ${LOCAL_LIBS} xm7_soundbuffer-mmx)
+# add_subdirectory(sdl/soundbuffer/mmx)
+#endif()
+
#set(CMAKE_BUILD_SETTING_C_FLAGS "${CMAKE_C_FLAGS} -msse2 -msse -mmmx")
-add_library(common_emu
- emu.cpp
-)
+#add_library(common_emu
+# emu.cpp
+#)
if(USE_DEVICES_SHARED_LIB)
- add_library(common_common
+ add_library(common_${EXE_NAME}
config.cpp
debugger.cpp
)
else()
- add_library(common_common
+ add_library(common_${EXE_NAME}
common.cpp
config.cpp
debugger.cpp
message("* qt/osd")
-SET(THIS_LIB_VERSION 3.0.1)
+SET(THIS_LIB_VERSION 3.0.2)
set(s_qt_osd_headers
osd_base.h
message("* qt/avio")
-SET(THIS_LIB_VERSION 3.0.1)
+SET(THIS_LIB_VERSION 3.0.2)
set(s_qt_avio_headers
movie_saver.h
movie_loader.h
message("* qt/common")
-
-#include(cotire)
-#include(PrecompiledHeader)
-
set(s_qt_common_headers
emu_thread.h
mainwidget.h
endif()
set(QT_COMMON_BASE
- main.cpp
+# main.cpp
qt_utils.cpp
menu_flags.cpp
../osd_wrapper.cpp
)
+if(0)
+ if(WIN32)
+ set(QT_COMMON_BASE ../gui/qt_main.cpp ${QT_COMMON_BASE} )
+ endif()
+ add_library(common
+ ${QT_COMMON_BASE}
+ ${s_qt_common_headers_MOC}
+ )
-# QT5_ADD_RESOURCES(s_qt_common_RCC ${RESOURCE}
-# ${CMAKE_CURRENT_SOURCE_DIR}/qrc/i18n_global.qrc
-# ${CMAKE_CURRENT_SOURCE_DIR}/qrc/icons.qrc)
-
+else()
if(WIN32)
set(QT_COMMON_BASE ../gui/qt_main.cpp ${QT_COMMON_BASE} )
WIN32
${QT_COMMON_BASE}
${s_qt_common_headers_MOC}
-# ${s_qt_common_RCC}
)
else()
- add_executable(${EXEC_TARGET}
+ add_executable(${EXEC_TARGET}
${QT_COMMON_BASE}
${s_qt_common_headers_MOC}
-# ${s_qt_common_RCC}
)
-# add_precompiled_header(${EXEC_TARGET} pch_list
-# SOURCE_CXX pch.cpp FORCEINCLUDE
-# )
endif()
#cotire(${EXEC_TARGET})
target_link_libraries(${EXEC_TARGET} ${LOCAL_LIBS} ${BUNDLE_LIBS} -lpthread)
endif()
install(TARGETS ${EXEC_TARGET} DESTINATION bin)
-
+endif()
QT4_WRAP_CPP(s_qt_debugger_headers_MOC ${s_qt_debugger_headers})
endif()
-add_library(qt_debugger
+add_library(qt_debugger_${EXE_NAME}
qt_debugger.cpp
${s_qt_debugger_headers_MOC}
)
message("* qt/emuutils")
-SET(THIS_LIB_VERSION 2.20.1)
+SET(THIS_LIB_VERSION 2.20.2)
set(s_qt_emuutils_headers
../gui/csp_logger.h
message("* qt/gui")
-set(THIS_LIB_VERSION 3.1.0)
+set(THIS_LIB_VERSION 3.1.1)
#include(cotire)
#include(PrecompiledHeader)
menuclasses.h
)
-if(USE_QT_5)
- QT5_WRAP_CPP(s_qt_fm7_headers_MOC ${s_qt_fm7_headers})
-# QT5_ADD_RESOURCES(s_qt_fm7_headers_RCC ${RESOURCE})
-else()
- QT4_WRAP_CPP(s_qt_fm7_headers_MOC ${s_qt_fm7_headers})
-endif()
+ QT5_WRAP_CPP(s_qt_fm7_headers_${EXE_NAME}_MOC ${s_qt_fm7_headers})
-add_library(qt_fm7
+add_library(qt_${EXE_NAME}
MainWindow.cpp
- ${s_qt_fm7_headers_MOC}
+ ${s_qt_fm7_headers_${EXE_NAME}_MOC}
)
{
}
-#if defined(WITH_Z80)
void Object_Menu_Control_7::do_set_z80card_on(bool flag)
{
if(flag) {
}
emit sig_emu_update_config();
}
-#endif
+
void Object_Menu_Control_7::do_set_uart(bool flag)
{
uint32_t nval;
}
}
-#if defined(CAPABLE_JCOMMCARD)
void Object_Menu_Control_7::do_set_jcommcard(bool flag)
{
if(flag) {
config.dipswitch = config.dipswitch & ~FM7_DIPSW_JSUBCARD_ON;
}
}
-#endif
-#if defined(_FM8) || defined(_FM7) || defined(_FMNEW7)
void Object_Menu_Control_7::do_set_kanji_rom(bool flag)
{
if(flag) {
config.dipswitch = config.dipswitch & ~FM7_DIPSW_CONNECT_KANJIROM;
}
}
-#endif
-#if defined(_FM8) || defined(_FM7) || defined(_FMNEW7)
void Object_Menu_Control_7::do_set_320kFloppy(bool flag)
{
if(flag) {
config.dipswitch = config.dipswitch & ~FM7_DIPSW_CONNECT_320KFDC;
}
}
-#endif
-#if defined(HAS_2HD)
void Object_Menu_Control_7::do_set_1MFloppy(bool flag)
{
if(flag) {
config.dipswitch = config.dipswitch & ~FM7_DIPSW_CONNECT_1MFDC;
}
}
-#endif
void Object_Menu_Control_7::do_set_autokey_5_8(void)
}
}
-
-
-
-#if defined(_FM8)
void Object_Menu_Control_7::do_set_protect_ram(bool flag)
{
if(flag) {
}
emit sig_emu_update_config();
}
-#else
+
void Object_Menu_Control_7::do_set_cyclesteal(bool flag)
{
if(flag) {
}
emit sig_emu_update_config();
}
-#endif
+
void Object_Menu_Control_7::do_set_hsync(bool flag)
{
if(flag) {
}
#endif
}
+
#if defined(CAPABLE_DICTROM) && !defined(_FM77AV40EX) && !defined(_FM77AV40SX)
void META_MainWindow::do_set_use_dictcard(bool flag)
{
#include "commonclasses.h"
#include "mainwidget.h"
+#include "vm.h"
// This extends class CSP_MainWindow as Ui_MainWindow.
// You may use this as
QT_BEGIN_NAMESPACE
// int sig_sound_device(int);
int sig_emu_update_config(void);
public slots:
-# if defined(WITH_Z80)
+
void do_set_z80card_on(bool flag);
void do_set_z80_irq(bool flag);
void do_set_z80_firq(bool flag);
void do_set_z80_nmi(bool flag);
-# endif
-
void do_set_hsync(bool flag);
-# if defined(_FM8) || defined(_FM7) || defined(_FMNEW7)
void do_set_kanji_rom(bool flag);
void do_set_320kFloppy(bool flag);
-# endif
-# if defined(HAS_2HD)
+
void do_set_1MFloppy(bool flag);
-# endif
-# if defined(_FM8)
void do_set_protect_ram(bool flag);
-# else
+
void do_set_cyclesteal(bool flag);
-# endif
-#if defined(CAPABLE_JCOMMCARD)
void do_set_jcommcard(bool flag);
-#endif
+
void do_set_uart(bool flag);
void do_set_autokey_5_8(void);
};
)
if(USE_QT_5)
- QT5_WRAP_CPP(s_qt_fmtowns_headers_MOC ${s_qt_fmtowns_headers})
+ QT5_WRAP_CPP(s_qt_${EXE_NAME}_headers_MOC ${s_qt_fmtowns_headers})
# QT5_ADD_RESOURCES(s_qt_fmtowns_headers_RCC ${RESOURCE})
else()
- QT4_WRAP_CPP(s_qt_fmtowns_headers_MOC ${s_qt_fmtowns_headers})
+ QT4_WRAP_CPP(s_qt_${EXE_NAME}_headers_MOC ${s_qt_fmtowns_headers})
endif()
-add_library(qt_fmtowns
+add_library(qt_${EXE_NAME}
MainWindow.cpp
- ${s_qt_fmtowns_headers_MOC}
+ ${s_qt_${EXE_NAME}_headers_MOC}
)
message("* vm/common_vm")
-SET(THIS_LIB_VERSION 3.0.1)
+SET(THIS_LIB_VERSION 3.0.2)
#include(cotire)
set(s_vm_common_vm_srcs
cmake_minimum_required (VERSION 2.6)
message("* vm/fm7")
-#include(cotire)
-
set(VM_FM7_LIB_SRCS
display.cpp
vram.cpp
fm7.cpp
)
-if(BUILD_FM8)
- set(VM_FM7_LIB_SRCS ${VM_FM7_LIB_SRCS} fm_bubblecasette.cpp fm8_mainio.cpp)
-elseif(BUILD_FM7)
- set(VM_FM7_LIB_SRCS ${VM_FM7_LIB_SRCS} jcommcard.cpp)
-elseif(BUILD_FMNEW7)
- set(VM_FM7_LIB_SRCS ${VM_FM7_LIB_SRCS} jcommcard.cpp)
-elseif(BUILD_FM77)
- set(VM_FM7_LIB_SRCS ${VM_FM7_LIB_SRCS} jcommcard.cpp floppy_2HD.cpp)
-elseif(BUILD_FM77L2)
- set(VM_FM7_LIB_SRCS ${VM_FM7_LIB_SRCS} jcommcard.cpp floppy_2HD.cpp)
-elseif(BUILD_FM77L4)
- set(VM_FM7_LIB_SRCS ${VM_FM7_LIB_SRCS} jcommcard.cpp floppy_2HD.cpp)
-elseif(BUILD_FM77AV)
- set(VM_FM7_LIB_SRCS ${VM_FM7_LIB_SRCS} jcommcard.cpp)
+if(${EXE_NAME} STREQUAL emufm8)
+ add_library(vm_emufm8
+ ${VM_FM7_LIB_SRCS}
+ fm_bubblecasette.cpp
+ fm8_mainio.cpp
+ )
+elseif(${EXE_NAME} STREQUAL emufm7)
+ add_library(vm_emufm7
+ ${VM_FM7_LIB_SRCS}
+ jcommcard.cpp
+ )
+elseif(${EXE_NAME} STREQUAL emufm77)
+ add_library(vm_emufm77
+ ${VM_FM7_LIB_SRCS}
+ jcommcard.cpp
+ floppy_2HD.cpp
+ )
+elseif(${EXE_NAME} STREQUAL emufm77l2)
+ add_library(vm_emufm77l2
+ ${VM_FM7_LIB_SRCS}
+ jcommcard.cpp
+ floppy_2HD.cpp
+ )
+elseif(${EXE_NAME} STREQUAL emufm77l4)
+ add_library(vm_emufm77l4
+ ${VM_FM7_LIB_SRCS}
+ jcommcard.cpp
+ floppy_2HD.cpp
+ )
+elseif(${EXE_NAME} STREQUAL emufm77av)
+ add_library(vm_emufm77av
+ ${VM_FM7_LIB_SRCS}
+ jcommcard.cpp
+ )
+else()
+ add_library(vm_${EXE_NAME}
+ ${VM_FM7_LIB_SRCS}
+ )
endif()
-if(USE_DEVICES_SHARED_LIB)
-else()
+if(NOT USE_DEVICES_SHARED_LIB)
set(VM_FM7_LIB_SRCS ${VM_FM7_LIB_SRCS} dummydevice.cpp)
- if(FM77AV_VARIANTS)
+ if(${EXE_NAME} STREQUAL emufm77av)
set(VM_FM7_LIB_SRCS ${VM_FM7_LIB_SRCS} mb61vh010.cpp)
endif()
-
- if(BUILD_FM77AV20EX)
- set(VM_FM7_LIB_SRCS ${VM_FM7_LIB_SRCS} hd6844.cpp)
- elseif(BUILD_FM77AV40)
- set(VM_FM7_LIB_SRCS ${VM_FM7_LIB_SRCS} hd6844.cpp)
- elseif(BUILD_FM77AV40EX)
- set(VM_FM7_LIB_SRCS ${VM_FM7_LIB_SRCS} hd6844.cpp)
- elseif(BUILD_FM77AV40SX)
- set(VM_FM7_LIB_SRCS ${VM_FM7_LIB_SRCS} hd6844.cpp)
+ if(${EXE_NAME} STREQUAL emufm77av20)
+ set(VM_FM7_LIB_SRCS ${VM_FM7_LIB_SRCS} mb61vh010.cpp)
+ endif()
+ if(${EXE_NAME} STREQUAL emufm77av20ex)
+ set(VM_FM7_LIB_SRCS ${VM_FM7_LIB_SRCS} mb61vh010.cpp hd6844.cpp)
+ endif()
+ if(${EXE_NAME} STREQUAL emufm77av40)
+ set(VM_FM7_LIB_SRCS ${VM_FM7_LIB_SRCS} mb61vh010.cpp hd6844.cpp)
+ endif()
+ if(${EXE_NAME} STREQUAL emufm77av40ex)
+ set(VM_FM7_LIB_SRCS ${VM_FM7_LIB_SRCS} mb61vh010.cpp hd6844.cpp)
+ endif()
+ if(${EXE_NAME} STREQUAL emufm77av40sx)
+ set(VM_FM7_LIB_SRCS ${VM_FM7_LIB_SRCS} mb61vh010.cpp hd6844.cpp)
endif()
- set(VM_FM7_LIB_SRCS ${VM_FM7_LIB_SRCS} dummydevice.cpp)
endif()
-add_library(vm_fm7
- ${VM_FM7_LIB_SRCS}
-)
-#cotire(vm_fm7)
\ No newline at end of file
+
#endif
#define BASE_FLOPPY_DISK_NUM 0
-#ifdef BUILD_Z80
-# ifdef CAPABLE_Z80
+#ifdef CAPABLE_Z80
# define WITH_Z80
-# endif
#endif
// DIP Switch description
cmake_minimum_required (VERSION 2.6)
message("* vm/fmgen")
-SET(THIS_LIB_VERSION 1.9.0)
+SET(THIS_LIB_VERSION 1.9.1)
add_definitions(-D__LIBFMGEN_VERSION=\"libCSPfmgen.${THIS_LIB_VERSION}\")
SET(s_vm_fmgen_srcs
fmtowns.cpp
)
+#ToDo
if(BUILD_WITH_20PIX)
set(VM_FMTOWNS_DEV_SRCS ${VM_FMTOWNS_DEV_SRCS} fontrom_20pix.cpp)
endif()
-add_library(vm_fmtowns
+add_library(vm_${EXE_NAME}
${VM_FMTOWNS_DEV_SRCS}
)