OSDN Git Service

[BUILD][CMAKE][WIP] TRY: Not using build script, only cmake.
authorK.Ohta <whatisthis.sowhat@gmail.com>
Tue, 29 Sep 2020 15:04:44 +0000 (00:04 +0900)
committerK.Ohta <whatisthis.sowhat@gmail.com>
Tue, 29 Sep 2020 15:04:44 +0000 (00:04 +0900)
32 files changed:
.gitignore
source/CMakeLists.txt [new file with mode: 0644]
source/build-cmake/3rdparty/FindLibAV.cmake
source/build-cmake/cmake/single-build/CompressExeWithUpx.cmake [new symlink]
source/build-cmake/cmake/single-build/FindIconv.cmake [new symlink]
source/build-cmake/cmake/single-build/FindLibAV.cmake [new symlink]
source/build-cmake/cmake/single-build/FindOpenCL.cmake [new symlink]
source/build-cmake/cmake/single-build/PrecompiledHeader.cmake [new file with mode: 0644]
source/build-cmake/cmake/single-build/SetMSVCDebugPath.cmake [new symlink]
source/build-cmake/cmake/single-build/SplitDebugInformation.cmake [new symlink]
source/build-cmake/cmake/single-build/compile_gettext_catalogue.cmake [new file with mode: 0644]
source/build-cmake/cmake/single-build/config.cmake [new file with mode: 0644]
source/build-cmake/cmake/single-build/config_emufm7.cmake [new file with mode: 0644]
source/build-cmake/cmake/single-build/config_fmtowns.cmake [new file with mode: 0644]
source/build-cmake/cmake/single-build/detect_target_cpu.cmake [new file with mode: 0644]
source/build-cmake/cmake/single-build/simd-x86.cmake [new file with mode: 0644]
source/src/CMakeLists.txt
source/src/qt/CMakeLists.txt
source/src/qt/avio/CMakeLists.txt
source/src/qt/common/CMakeLists.txt
source/src/qt/debugger/CMakeLists.txt
source/src/qt/emuutils/CMakeLists.txt
source/src/qt/gui/CMakeLists.txt
source/src/qt/machines/fm7/CMakeLists.txt
source/src/qt/machines/fm7/MainWindow.cpp
source/src/qt/machines/fm7/menuclasses.h
source/src/qt/machines/fmtowns/CMakeLists.txt
source/src/vm/common_vm/CMakeLists.txt
source/src/vm/fm7/CMakeLists.txt
source/src/vm/fm7/fm7.h
source/src/vm/fmgen/CMakeLists.txt
source/src/vm/fmtowns/CMakeLists.txt

index 8ca7bf2..c5a81c1 100644 (file)
@@ -164,6 +164,8 @@ ipch/
 node_modules/
 packages/*
 publish/
+source/*/build/*
+source/build/*
 source/build-cmake/*/build-win32/*
 source/build-cmake/*/build/*
 source/src/vm/libcpu_newdev/mame0185/*
diff --git a/source/CMakeLists.txt b/source/CMakeLists.txt
new file mode 100644 (file)
index 0000000..c94c5de
--- /dev/null
@@ -0,0 +1,28 @@
+#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)
+
+
index 2d17640..f68fc4b 100644 (file)
@@ -50,12 +50,12 @@ ELSE (CMAKE_VERSION VERSION_GREATER 2.8.7)
 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")
 
diff --git a/source/build-cmake/cmake/single-build/CompressExeWithUpx.cmake b/source/build-cmake/cmake/single-build/CompressExeWithUpx.cmake
new file mode 120000 (symlink)
index 0000000..f11961f
--- /dev/null
@@ -0,0 +1 @@
+../../3rdparty/CompressExeWithUpx.cmake
\ No newline at end of file
diff --git a/source/build-cmake/cmake/single-build/FindIconv.cmake b/source/build-cmake/cmake/single-build/FindIconv.cmake
new file mode 120000 (symlink)
index 0000000..0104649
--- /dev/null
@@ -0,0 +1 @@
+../../3rdparty/FindIconv.cmake
\ No newline at end of file
diff --git a/source/build-cmake/cmake/single-build/FindLibAV.cmake b/source/build-cmake/cmake/single-build/FindLibAV.cmake
new file mode 120000 (symlink)
index 0000000..b898452
--- /dev/null
@@ -0,0 +1 @@
+../../3rdparty/FindLibAV.cmake
\ No newline at end of file
diff --git a/source/build-cmake/cmake/single-build/FindOpenCL.cmake b/source/build-cmake/cmake/single-build/FindOpenCL.cmake
new file mode 120000 (symlink)
index 0000000..f679e4c
--- /dev/null
@@ -0,0 +1 @@
+../../3rdparty/findopencl/FindOpenCL.cmake
\ No newline at end of file
diff --git a/source/build-cmake/cmake/single-build/PrecompiledHeader.cmake b/source/build-cmake/cmake/single-build/PrecompiledHeader.cmake
new file mode 100644 (file)
index 0000000..1e578d2
--- /dev/null
@@ -0,0 +1,214 @@
+# 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()
diff --git a/source/build-cmake/cmake/single-build/SetMSVCDebugPath.cmake b/source/build-cmake/cmake/single-build/SetMSVCDebugPath.cmake
new file mode 120000 (symlink)
index 0000000..41e4094
--- /dev/null
@@ -0,0 +1 @@
+../../3rdparty/SetMSVCDebugPath.cmake
\ No newline at end of file
diff --git a/source/build-cmake/cmake/single-build/SplitDebugInformation.cmake b/source/build-cmake/cmake/single-build/SplitDebugInformation.cmake
new file mode 120000 (symlink)
index 0000000..350f308
--- /dev/null
@@ -0,0 +1 @@
+../../3rdparty/SplitDebugInformation.cmake
\ No newline at end of file
diff --git a/source/build-cmake/cmake/single-build/compile_gettext_catalogue.cmake b/source/build-cmake/cmake/single-build/compile_gettext_catalogue.cmake
new file mode 100644 (file)
index 0000000..6ff0225
--- /dev/null
@@ -0,0 +1,29 @@
+##
+## 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)
+
diff --git a/source/build-cmake/cmake/single-build/config.cmake b/source/build-cmake/cmake/single-build/config.cmake
new file mode 100644 (file)
index 0000000..dc9a6d6
--- /dev/null
@@ -0,0 +1,424 @@
+
+
+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()
+
+
diff --git a/source/build-cmake/cmake/single-build/config_emufm7.cmake b/source/build-cmake/cmake/single-build/config_emufm7.cmake
new file mode 100644 (file)
index 0000000..f642201
--- /dev/null
@@ -0,0 +1,133 @@
+# 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()
+
+
+
+                         
+
+
diff --git a/source/build-cmake/cmake/single-build/config_fmtowns.cmake b/source/build-cmake/cmake/single-build/config_fmtowns.cmake
new file mode 100644 (file)
index 0000000..8653db2
--- /dev/null
@@ -0,0 +1,140 @@
+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()
diff --git a/source/build-cmake/cmake/single-build/detect_target_cpu.cmake b/source/build-cmake/cmake/single-build/detect_target_cpu.cmake
new file mode 100644 (file)
index 0000000..4b964c7
--- /dev/null
@@ -0,0 +1,14 @@
+# 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()
diff --git a/source/build-cmake/cmake/single-build/simd-x86.cmake b/source/build-cmake/cmake/single-build/simd-x86.cmake
new file mode 100644 (file)
index 0000000..98c5b32
--- /dev/null
@@ -0,0 +1,31 @@
+# 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()
+
index b18c09d..996fc76 100644 (file)
@@ -2,16 +2,16 @@ message("* common/common")
 
 #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
index 1ca0fde..503b01d 100644 (file)
@@ -1,5 +1,5 @@
 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
index adfc539..ca50f6c 100644 (file)
@@ -1,6 +1,6 @@
 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
index 7112566..a712682 100644 (file)
@@ -1,8 +1,4 @@
 message("* qt/common")
-
-#include(cotire)
-#include(PrecompiledHeader)
-
 set(s_qt_common_headers
          emu_thread.h
          mainwidget.h
@@ -19,7 +15,7 @@ else()
 endif()
 
 set(QT_COMMON_BASE
-      main.cpp 
+#      main.cpp 
       qt_utils.cpp
          menu_flags.cpp
          
@@ -33,11 +29,16 @@ set(QT_COMMON_BASE
          ../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} )
 
@@ -45,17 +46,12 @@ if(WIN32)
          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})
 
@@ -88,4 +84,4 @@ else()
  target_link_libraries(${EXEC_TARGET} ${LOCAL_LIBS} ${BUNDLE_LIBS} -lpthread)
 endif()
 install(TARGETS ${EXEC_TARGET} DESTINATION bin)
-
+endif()
index d87848a..a8d60ee 100644 (file)
@@ -10,7 +10,7 @@ else()
   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}
 )
index 62b2d09..ed2ebd6 100644 (file)
@@ -1,6 +1,6 @@
 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
index 5f37305..1d64331 100644 (file)
@@ -1,6 +1,6 @@
 message("* qt/gui")
 
-set(THIS_LIB_VERSION 3.1.0)
+set(THIS_LIB_VERSION 3.1.1)
 #include(cotire)
 #include(PrecompiledHeader)
 
index 71835c3..017ceb5 100644 (file)
@@ -4,16 +4,11 @@ set(s_qt_fm7_headers
          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}
 )
 
 
index f3b0d0a..76c33c4 100644 (file)
@@ -32,7 +32,6 @@ Object_Menu_Control_7::~Object_Menu_Control_7()
 {
 }
 
-#if defined(WITH_Z80)
 void Object_Menu_Control_7::do_set_z80card_on(bool flag)
 {
        if(flag) {
@@ -71,7 +70,7 @@ void Object_Menu_Control_7::do_set_z80_nmi(bool flag)
        }
        emit sig_emu_update_config();
 }
-#endif
+
 void Object_Menu_Control_7::do_set_uart(bool flag)
 {
        uint32_t nval;
@@ -98,7 +97,6 @@ void Object_Menu_Control_7::do_set_uart(bool flag)
        }
 }
 
-#if defined(CAPABLE_JCOMMCARD)
 void Object_Menu_Control_7::do_set_jcommcard(bool flag)
 {
        if(flag) {
@@ -107,9 +105,7 @@ void Object_Menu_Control_7::do_set_jcommcard(bool 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) {
@@ -118,9 +114,7 @@ void Object_Menu_Control_7::do_set_kanji_rom(bool 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) {
@@ -129,9 +123,7 @@ void Object_Menu_Control_7::do_set_320kFloppy(bool 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) {
@@ -140,7 +132,6 @@ void Object_Menu_Control_7::do_set_1MFloppy(bool flag)
                config.dipswitch = config.dipswitch & ~FM7_DIPSW_CONNECT_1MFDC;
        }
 }
-#endif
 
 
 void Object_Menu_Control_7::do_set_autokey_5_8(void)
@@ -162,10 +153,6 @@ 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) {
@@ -175,7 +162,7 @@ void Object_Menu_Control_7::do_set_protect_ram(bool flag)
        }
        emit sig_emu_update_config();
 }
-#else
+
 void Object_Menu_Control_7::do_set_cyclesteal(bool flag)
 {
        if(flag) {
@@ -185,7 +172,7 @@ void Object_Menu_Control_7::do_set_cyclesteal(bool flag)
        }
        emit sig_emu_update_config();
 }
-#endif
+
 void Object_Menu_Control_7::do_set_hsync(bool flag)
 {
        if(flag) {
@@ -230,6 +217,7 @@ void META_MainWindow::do_set_extram(bool flag)
        }
 #endif
 }
+
 #if defined(CAPABLE_DICTROM) && !defined(_FM77AV40EX) && !defined(_FM77AV40SX)
 void META_MainWindow::do_set_use_dictcard(bool flag)
 {
index a6430ea..e00134e 100644 (file)
@@ -4,6 +4,7 @@
 
 #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
@@ -20,30 +21,22 @@ signals:
        //  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);
 };
index 7f636a1..ae86230 100644 (file)
@@ -5,15 +5,15 @@ set(s_qt_fmtowns_headers
 )
 
 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}
 )
 
 
index 678193a..27f9a46 100644 (file)
@@ -1,6 +1,6 @@
 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
index cbe1b4c..2b635fe 100644 (file)
@@ -1,8 +1,6 @@
 cmake_minimum_required (VERSION 2.6)
 
 message("* vm/fm7")
-#include(cotire)
-
 set(VM_FM7_LIB_SRCS
        display.cpp
        vram.cpp
@@ -22,41 +20,65 @@ set(VM_FM7_LIB_SRCS
        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
+
index a13a195..a1170a1 100644 (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
index b4d201a..0b27581 100644 (file)
@@ -1,7 +1,7 @@
 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
index e5b745f..5b55a38 100644 (file)
@@ -35,10 +35,11 @@ set(VM_FMTOWNS_DEV_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}
 )