OSDN Git Service

[BUILD][CMAKE] Add __GIT_REPO_VERSION definition.
[csp-qt/common_source_project-fm7.git] / source / build-cmake / cmake / config_commonsource.cmake
index 1e7ddb6..04f7998 100644 (file)
@@ -4,9 +4,12 @@
 # this part was written only me.
 
 include(CheckFunctionExists)
+#include(cotire)
 
 if(USE_DEVICES_SHARED_LIB)
-  add_definitions(-DUSE_DEVICES_SHARED_LIB)
+  add_definitions(-DUSE_SHARED_DLL)
+  add_definitions(-DUSE_SHARED_UI_DLL)
+  add_definitions(-DUSE_SHARED_DEVICES_DLL)
   set(I386_CPPS
        libcpu_newdev/i386.cpp
        libcpu_newdev/libcpu_i386/i386_real.cpp
@@ -14,19 +17,23 @@ if(USE_DEVICES_SHARED_LIB)
        libcpu_newdev/libcpu_i386/i386dasm.cpp
        )
   set(MC6809_CPPS 
-       libcpu_newdev/libcpu_mc6809/mc6809.cpp
+       mc6809.cpp
   )
   set(MCS48_CPPS
-       libcpu_newdev/mcs48.cpp
+       mcs48.cpp
        )
   set(IX86_CPPS
        libcpu_newdev/i86.cpp
        )
+  set(Z80_CPPS 
+       z80.cpp
+  )
 else()
   set(I386_CPPS i386.cpp)
-  set(MC6809_CPPS mc6809.cpp)
-  set(MCS48_CPPS mcs48.cpp)
+  set(MC6809_CPPS mc6809_base.cpp mc6809.cpp)
+  set(MCS48_CPPS mcs48_base.cpp mcs48.cpp)
   set(IX86_CPPS i86.cpp)
+  set(Z80_CPPS   z80_base.cpp z80.cpp)
   set(VMFILES ${VMFILES} ${VMFILES_LIB})
 endif()
 
@@ -48,6 +55,9 @@ endif()
 if(FLAG_USE_MCS48)
   set(VMFILES ${VMFILES} ${MCS48_CPPS})
 endif()
+if(FLAG_USE_Z80)
+  set(VMFILES ${VMFILES} ${Z80_CPPS})
+endif()
 if(USE_DEVICES_SHARED_LIB)
   set(VMFILES ${VMFILES}   libcpu_newdev/device.cpp)
 endif()
@@ -60,10 +70,13 @@ endif()
   find_program(USE_CCACHE ccache)
   if(USE_CCACHE)
    SET_PROPERTY(GLOBAL PROPERTY RULE_LAUNCH_COMPILE ccache)
-   SET_PROPERTY(GLOBAL PROPERTY RULE_LAUNCH_LINK ccache)
#  SET_PROPERTY(GLOBAL PROPERTY RULE_LAUNCH_LINK ccache)
   endif()
-  FIND_PACKAGE(Qt5Widgets REQUIRED)
+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})
@@ -102,19 +115,24 @@ 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)
@@ -122,6 +140,18 @@ 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()
+
 include(FindLibAV)
     if(LIBAV_FOUND)
       add_definitions(-DUSE_LIBAV)
@@ -213,6 +243,7 @@ endif()
 if(LIBAV_FOUND)
    include_directories(${LIBAV_INCLUDE_DIRS})
 endif()
+
 include_directories(${CMAKE_CURRENT_SOURCE_DIR}/../../src)
 include_directories(${CMAKE_CURRENT_SOURCE_DIR}/../../src/vm)
 include_directories(${CMAKE_CURRENT_SOURCE_DIR}/../../src/qt/common)
@@ -225,6 +256,13 @@ endif()
 add_subdirectory(../../src common)
 add_subdirectory(../../src/vm vm/)
 
+#add_custom_command(OUTPUT test.txt
+#          COMMAND grep ARGS -m 1 THIS_LIB_VERSION ${CMAKE_CURRENT_SOURCE_DIR}/../../src/vm/fmgen/CMakeLists.txt
+#        COMMAND sed ARGS "-r" "'s/.*THIS_VERSION\ //'" 
+#        COMMAND sed ARGS "-r" "'s/\).*$//'"
+#        )
+
+
 if(DEFINED VM_NAME)
 # if(WITH_DEBUGGER)
    set(DEBUG_LIBS qt_debugger)
@@ -233,7 +271,15 @@ if(DEFINED VM_NAME)
 # else()
 #   set(DEBUG_LIBS)
 # endif()
+       if(USE_DEVICES_SHARED_LIB)
+       else()
+         if(USE_FMGEN)
+               set(VM_APPEND_LIBS fmgen ${VM_APPEND_LIBS})
 
+         else()
+               set(VM_APPEND_LIBS ${VM_APPEND_LIBS})
+         endif()
+       endif()
        if(WIN32)
           set(LOCAL_LIBS     
                   common_emu
@@ -259,6 +305,7 @@ endif()
 
 include(simd-x86)
 
+
 if(WIN32)
    set(BUNDLE_LIBS 
        ${OPENGL_LIBRARY}
@@ -276,6 +323,7 @@ if(WIN32)
        #SET(CMAKE_CXX_ARCHIVE_CREATE "<CMAKE_AR> qcs <TARGET> <LINK_FLAGS> <OBJECTS>")
        #SET(CMAKE_CXX_ARCHIVE_FINISH   true)
 else()
+   add_definitions(-D_UNICODE)
    set(BUNDLE_LIBS 
 #       ${OPENGL_LIBRARY}
        ${OPENCL_LIBRARY}
@@ -285,7 +333,11 @@ else()
 #       ${LIBAV_LIBRARIES}
        ${ADDITIONAL_LIBRARIES}
        )
-       set(BUNDLE_LIBS ${BUNDLE_LIBS} -lCSPosd -lCSPcommon_vm -lCSPfmgen -lCSPgui -lCSPemu_utils -lCSPavio)
+       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()  
 endif()
 
 if(USE_QT_5)
@@ -295,10 +347,18 @@ endif()
 set(BUNDLE_LIBS ${BUNDLE_LIBS} ${THREADS_LIBRARY})
 
 if(DEFINED VM_NAME)
-       add_subdirectory(../../src/vm/${VM_NAME} vm/${VM_NAME})
-#  if(USE_FMGEN)
-#      add_subdirectory(../../src/vm/fmgen vm/fmgen)
-#  endif()     
-       add_subdirectory(../../src/qt/machines/${VM_NAME} qt/${VM_NAME})
-       add_subdirectory(../../src/qt/common qt/common)
+       if(USE_DEVICES_SHARED_LIB)
+               add_subdirectory(../../src/vm/${VM_NAME} vm/${VM_NAME})
+               add_subdirectory(../../src/qt/machines/${VM_NAME} qt/${VM_NAME})
+               add_subdirectory(../../src/qt/common qt/common)
+         else()
+               add_subdirectory(../../src/vm/${VM_NAME} vm/${VM_NAME})
+               #add_subdirectory(../../src/vm vm/common)
+               #add_subdirectory(../../src common/common)
+               if(USE_FMGEN)
+                       add_subdirectory(../../src/vm/fmgen vm/fmgen)
+               endif() 
+               add_subdirectory(../../src/qt/machines/${VM_NAME} qt/${VM_NAME})
+               add_subdirectory(../../src/qt/common qt/common)
+       endif() 
 endif()