Geant4 Cross Reference

Cross-Referencing   Geant4
Geant4/config/sys/WIN32-VC.gmk

Version: [ ReleaseNotes ] [ 1.0 ] [ 1.1 ] [ 2.0 ] [ 3.0 ] [ 3.1 ] [ 3.2 ] [ 4.0 ] [ 4.0.p1 ] [ 4.0.p2 ] [ 4.1 ] [ 4.1.p1 ] [ 5.0 ] [ 5.0.p1 ] [ 5.1 ] [ 5.1.p1 ] [ 5.2 ] [ 5.2.p1 ] [ 5.2.p2 ] [ 6.0 ] [ 6.0.p1 ] [ 6.1 ] [ 6.2 ] [ 6.2.p1 ] [ 6.2.p2 ] [ 7.0 ] [ 7.0.p1 ] [ 7.1 ] [ 7.1.p1 ] [ 8.0 ] [ 8.0.p1 ] [ 8.1 ] [ 8.1.p1 ] [ 8.1.p2 ] [ 8.2 ] [ 8.2.p1 ] [ 8.3 ] [ 8.3.p1 ] [ 8.3.p2 ] [ 9.0 ] [ 9.0.p1 ] [ 9.0.p2 ] [ 9.1 ] [ 9.1.p1 ] [ 9.1.p2 ] [ 9.1.p3 ] [ 9.2 ] [ 9.2.p1 ] [ 9.2.p2 ] [ 9.2.p3 ] [ 9.2.p4 ] [ 9.3 ] [ 9.3.p1 ] [ 9.3.p2 ] [ 9.4 ] [ 9.4.p1 ] [ 9.4.p2 ] [ 9.4.p3 ] [ 9.4.p4 ] [ 9.5 ] [ 9.5.p1 ] [ 9.5.p2 ] [ 9.6 ] [ 9.6.p1 ] [ 9.6.p2 ] [ 9.6.p3 ] [ 9.6.p4 ] [ 10.0 ] [ 10.0.p1 ] [ 10.0.p2 ] [ 10.0.p3 ] [ 10.0.p4 ] [ 10.1 ] [ 10.1.p1 ] [ 10.1.p2 ] [ 10.1.p3 ] [ 10.2 ] [ 10.2.p1 ] [ 10.2.p2 ] [ 10.2.p3 ] [ 10.3 ] [ 10.3.p1 ] [ 10.3.p2 ] [ 10.3.p3 ] [ 10.4 ] [ 10.4.p1 ] [ 10.4.p2 ] [ 10.4.p3 ] [ 10.5 ] [ 10.5.p1 ] [ 10.6 ] [ 10.6.p1 ] [ 10.6.p2 ] [ 10.6.p3 ] [ 10.7 ] [ 10.7.p1 ] [ 10.7.p2 ] [ 10.7.p3 ] [ 10.7.p4 ] [ 11.0 ] [ 11.0.p1 ] [ 11.0.p2 ] [ 11.0.p3, ] [ 11.0.p4 ] [ 11.1 ] [ 11.1.1 ] [ 11.1.2 ] [ 11.1.3 ] [ 11.2 ] [ 11.2.1 ] [ 11.2.2 ] [ 11.3.0 ]

Diff markup

Differences between /config/sys/WIN32-VC.gmk (Version 11.3.0) and /config/sys/WIN32-VC.gmk (Version 11.2.1)


  1 #                                                   1 #
  2 # ------ WIN32/VC ------    Visual Studio 2019      2 # ------ WIN32/VC ------    Visual Studio 2019 and higher
  3 #                                                   3 #
  4 ifeq ($(G4SYSTEM),WIN32-VC)                         4 ifeq ($(G4SYSTEM),WIN32-VC)
  5   CXX       := CL                                   5   CXX       := CL
  6   ifdef G4OPTIMISE                                  6   ifdef G4OPTIMISE
  7     CXXFLAGS  += -Ox -MD                            7     CXXFLAGS  += -Ox -MD
  8   else                                              8   else
  9     ifdef G4DEBUG                                   9     ifdef G4DEBUG
 10       CXXFLAGS  += -Od -MDd -Zi -Fd$(G4LIBDIR)     10       CXXFLAGS  += -Od -MDd -Zi -Fd$(G4LIBDIR)/lib$(name)
 11     endif                                          11     endif
 12   endif                                            12   endif
 13   CXXFLAGS += -GR -EHsc -Zm200 -nologo -std:c+     13   CXXFLAGS += -GR -EHsc -Zm200 -nologo -std:c++17
 14   CXXFLAGS += -D_CONSOLE -D_WIN32 -DOS             14   CXXFLAGS += -D_CONSOLE -D_WIN32 -DOS
 15   CPPFLAGS += -DWIN32 -DXPNET -D_CRT_SECURE_NO     15   CPPFLAGS += -DWIN32 -DXPNET -D_CRT_SECURE_NO_DEPRECATE -D_NO_CRT_STDIO_INLINE
 16   LDFLAGS  += -FORCE /NODEFAULTLIB:MSVCRT.dll      16   LDFLAGS  += -FORCE /NODEFAULTLIB:MSVCRT.dll /STACK:12582912
 17   LOADLIBS += legacy_stdio_definitions.lib         17   LOADLIBS += legacy_stdio_definitions.lib
 18                                                    18 
 19   SHEXT := dll                                     19   SHEXT := dll
 20   AR := LIB                                        20   AR := LIB
 21   ECHO := /usr/bin/echo -e                         21   ECHO := /usr/bin/echo -e
 22   FIND := /usr/bin/find                            22   FIND := /usr/bin/find
 23   SORT := /usr/bin/sort                            23   SORT := /usr/bin/sort
 24   GREP := /usr/bin/grep                            24   GREP := /usr/bin/grep
 25   SED  := /usr/bin/sed                             25   SED  := /usr/bin/sed
 26   CAT  := /usr/bin/cat                             26   CAT  := /usr/bin/cat
 27   CUT  := /usr/bin/cut                             27   CUT  := /usr/bin/cut
 28   TOUCH := /usr/bin/touch                          28   TOUCH := /usr/bin/touch
 29                                                    29 
 30   FC := g77                                        30   FC := g77
 31 #  FCLIBS := -lf2c                                 31 #  FCLIBS := -lf2c
 32   ifndef OGLFLAGS                                  32   ifndef OGLFLAGS
 33     OGLFLAGS  :=                                   33     OGLFLAGS  :=
 34   endif                                            34   endif
 35   ifndef OGLLIBS                                   35   ifndef OGLLIBS
 36     OGLLIBS   := opengl32.lib gdi32.lib user32     36     OGLLIBS   := opengl32.lib gdi32.lib user32.lib
 37   endif                                            37   endif
 38   ifndef UI32LIBS                                  38   ifndef UI32LIBS
 39     UI32LIBS  := gdi32.lib user32.lib comctl32     39     UI32LIBS  := gdi32.lib user32.lib comctl32.lib
 40   endif                                            40   endif
 41   ifndef QTHOME                                    41   ifndef QTHOME
 42     QTHOME   := /Qt                                42     QTHOME   := /Qt
 43   endif                                            43   endif
 44   ifndef QT_VERSION                                44   ifndef QT_VERSION
 45     QT_VERSION := 5                                45     QT_VERSION := 5
 46   endif                                            46   endif
 47   ifndef QTFLAGS                                   47   ifndef QTFLAGS
 48     QTFLAGS  := -I$(QTHOME)/include                48     QTFLAGS  := -I$(QTHOME)/include
 49     QTFLAGS  += -I$(QTHOME)/include/QtCore         49     QTFLAGS  += -I$(QTHOME)/include/QtCore
 50     QTFLAGS  += -I$(QTHOME)/include/QtGui          50     QTFLAGS  += -I$(QTHOME)/include/QtGui
 51     QTFLAGS  += -I$(QTHOME)/include/QtWidgets      51     QTFLAGS  += -I$(QTHOME)/include/QtWidgets
 52     QTFLAGS  += -I$(QTHOME)/include/QtOpenGL       52     QTFLAGS  += -I$(QTHOME)/include/QtOpenGL
 53     ifeq ($(QT_VERSION),6)                         53     ifeq ($(QT_VERSION),6)
 54       QTFLAGS   += -I $(QTHOME)/include/QtOpen     54       QTFLAGS   += -I $(QTHOME)/include/QtOpenGLWidgets
 55     endif                                          55     endif
 56   endif                                            56   endif
 57   ifndef QTMOC                                     57   ifndef QTMOC
 58     QTMOC    := $(QTHOME)/bin/moc                  58     QTMOC    := $(QTHOME)/bin/moc
 59   endif                                            59   endif
 60   ifeq ($(QT_VERSION),5)       # Qt5               60   ifeq ($(QT_VERSION),5)       # Qt5
 61     ifndef QTLIBS                                  61     ifndef QTLIBS
 62       QTLIBS   := $(LIB_PATH)$(QTHOME)/lib Qt5     62       QTLIBS   := $(LIB_PATH)$(QTHOME)/lib Qt5Core.lib Qt5Gui.lib Qt5Widgets.lib
 63     ifndef GLQTLIBS                                63     ifndef GLQTLIBS
 64       GLQTLIBS := $(LIB_PATH)$(QTHOME)/lib Qt5     64       GLQTLIBS := $(LIB_PATH)$(QTHOME)/lib Qt5Core.lib Qt5Gui.lib Qt5Widgets.lib Qt5OpenGL.lib
 65     endif                                          65     endif
 66   else                         # Qt6               66   else                         # Qt6
 67     ifndef QTLIBS                                  67     ifndef QTLIBS
 68       QTLIBS   := $(LIB_PATH)$(QTHOME)/lib Qt6     68       QTLIBS   := $(LIB_PATH)$(QTHOME)/lib Qt6Core.lib Qt6Gui.lib Qt6Widgets.lib
 69     ifndef GLQTLIBS                                69     ifndef GLQTLIBS
 70       GLQTLIBS := $(LIB_PATH)$(QTHOME)/lib Qt6     70       GLQTLIBS := $(LIB_PATH)$(QTHOME)/lib Qt6Core.lib Qt6Gui.lib Qt6Widgets.lib Qt6OpenGL.lib Qt6OpenGLWidgets.lib
 71     endif                                          71     endif
 72   endif                                            72   endif
 73 #                                                  73 #
 74 # Building DLLs                                    74 # Building DLLs
 75 # -------------                                    75 # -------------
 76 #  The commands below allow to build DLLs from     76 #  The commands below allow to build DLLs from the archive libraries.
 77 #  From a libG4xxx.a, will extract the symbols     77 #  From a libG4xxx.a, will extract the symbols with the genwindef tool,
 78 #  which will produce a G4xxx.def file.            78 #  which will produce a G4xxx.def file.
 79 #  The G4xxx.def file will contain the list of     79 #  The G4xxx.def file will contain the list of symbols that are "exported"
 80 #  or made public for using the DLLs.              80 #  or made public for using the DLLs.
 81 #  The source genwindef.cc is in the geant4/co     81 #  The source genwindef.cc is in the geant4/config directory. The binary is
 82 #  built during the library installation proce     82 #  built during the library installation process, and will be placed in
 83 #  $G4LIB/G4SYSTEM.                                83 #  $G4LIB/G4SYSTEM. 
 84 #  If can also be built as follows :               84 #  If can also be built as follows :
 85 #    DOS> cl.exe /Fegenwindef.exe genwindef.cc     85 #    DOS> cl.exe /Fegenwindef.exe genwindef.cc 
 86 #  Then, to use it :                               86 #  Then, to use it :
 87 #    DOS> genwindef -o G4xxx.def -l G4xxx libG     87 #    DOS> genwindef -o G4xxx.def -l G4xxx libG4xxx.a 
 88 #  Libraries libG4xxx.lib can also be built wi     88 #  Libraries libG4xxx.lib can also be built with :
 89 #    DOS> lib /def:G4xxx.def /out:libG4xxx.lib     89 #    DOS> lib /def:G4xxx.def /out:libG4xxx.lib
 90 #  It also produces a libG4xxx.exp used to bui     90 #  It also produces a libG4xxx.exp used to build the DLL.
 91 #  The DLL can be built with :                     91 #  The DLL can be built with :
 92 #    DOS> link /dll /out:G4xxx.dll libG4xxx.ex     92 #    DOS> link /dll /out:G4xxx.dll libG4xxx.exp libG4xxx.a <dependencies>
 93 #  Note that a DLL must be fully linked. You s     93 #  Note that a DLL must be fully linked. You should NOT have undefined 
 94 #  symbols as output of the link command.          94 #  symbols as output of the link command.
 95 #                                                  95 #
 96   ifdef G4LIB_USE_CLHEP                            96   ifdef G4LIB_USE_CLHEP
 97     GLOBLIBS += libG4clhep.lib                     97     GLOBLIBS += libG4clhep.lib
 98   endif                                            98   endif
 99   ifdef G4LIB_USE_PTL                              99   ifdef G4LIB_USE_PTL
100     GLOBLIBS += libG4ptl.lib                      100     GLOBLIBS += libG4ptl.lib
101   endif                                           101   endif
102   define build-granular-shared-lib                102   define build-granular-shared-lib
103     @libdir=`(cd $(@D);/bin/pwd)`;\               103     @libdir=`(cd $(@D);/bin/pwd)`;\
104     cd $(G4TMP)/$(G4SYSTEM);\                     104     cd $(G4TMP)/$(G4SYSTEM);\
105     $(ECHO) "Building $(name).def file ...";\     105     $(ECHO) "Building $(name).def file ...";\
106     $(RM) $(name).def;\                           106     $(RM) $(name).def;\
107     $(G4LIB)/$(G4SYSTEM)/genwindef.exe -o $(na    107     $(G4LIB)/$(G4SYSTEM)/genwindef.exe -o $(name).def -l $(name) $(G4LIBDIR)/lib$(name).a;\
108     $(ECHO) "Building lib$(name).exp and lib$(    108     $(ECHO) "Building lib$(name).exp and lib$(name).lib file ...";\
109     $(RM) $(G4LIBDIR)/lib$(name).exp;\            109     $(RM) $(G4LIBDIR)/lib$(name).exp;\
110     $(RM) $(G4LIBDIR)/lib$(name).lib;\            110     $(RM) $(G4LIBDIR)/lib$(name).lib;\
111     lib.exe /nologo /machine:x64 /def:$(name).    111     lib.exe /nologo /machine:x64 /def:$(name).def \
112             /out:$(G4LIBDIR)/lib$(name).lib;\     112             /out:$(G4LIBDIR)/lib$(name).lib;\
113     $(RM) $(G4LIBDIR)/$(name).dll;\               113     $(RM) $(G4LIBDIR)/$(name).dll;\
114     $(ECHO) "Building $(name).dll file ...";\     114     $(ECHO) "Building $(name).dll file ...";\
115     link.exe /nologo /machine:x64 /dll /out:$(    115     link.exe /nologo /machine:x64 /dll /out:$(G4LIBDIR)/$(name).dll \
116              $(G4LIBDIR)/lib$(name).exp $(G4LI    116              $(G4LIBDIR)/lib$(name).exp $(G4LIBDIR)/lib$(name).a \
117              $(LIB_PATH)$(G4LIBDIR) $(GLOBLIBS    117              $(LIB_PATH)$(G4LIBDIR) $(GLOBLIBS) \
118              $(LIB_PATH)$(CLHEP_LIB_DIR) $(CLH    118              $(LIB_PATH)$(CLHEP_LIB_DIR) $(CLHEP_LIB) \
119              $(LIB_PATH)$(PTL_LIB_DIR) $(PTL_L    119              $(LIB_PATH)$(PTL_LIB_DIR) $(PTL_LIB) \
120              $(INTYLIBS) $(GDMLLIBS) $(ANALYSI    120              $(INTYLIBS) $(GDMLLIBS) $(ANALYSISLIBS) $(UI32LIBS) $(LOADLIBS)
121   endef                                           121   endef
122   define build-global-shared-lib                  122   define build-global-shared-lib
123     @libdir=`(cd $(@D);/bin/pwd)`;\               123     @libdir=`(cd $(@D);/bin/pwd)`;\
124     cd $(G4TMP)/$(G4SYSTEM);\                     124     cd $(G4TMP)/$(G4SYSTEM);\
125     $(ECHO) "Building $(name).def file ...";\     125     $(ECHO) "Building $(name).def file ...";\
126     $(RM) $(name).def;\                           126     $(RM) $(name).def;\
127     $(G4LIB)/$(G4SYSTEM)/genwindef.exe -o $(na    127     $(G4LIB)/$(G4SYSTEM)/genwindef.exe -o $(name).def -l $(name) $(G4LIBDIR)/lib$(name).a;\
128     $(ECHO) "Building lib$(name).exp and lib$(    128     $(ECHO) "Building lib$(name).exp and lib$(name).lib ...";\
129     $(RM) $(G4LIBDIR)/lib$(name).exp;\            129     $(RM) $(G4LIBDIR)/lib$(name).exp;\
130     $(RM) $(G4LIBDIR)/lib$(name).lib;\            130     $(RM) $(G4LIBDIR)/lib$(name).lib;\
131     lib.exe /nologo /machine:x64 /def:$(name).    131     lib.exe /nologo /machine:x64 /def:$(name).def \
132             /out:$(G4LIBDIR)/lib$(name).lib;\     132             /out:$(G4LIBDIR)/lib$(name).lib;\
133     $(RM) $(G4LIBDIR)/$(name).dll;\               133     $(RM) $(G4LIBDIR)/$(name).dll;\
134     $(ECHO) "Building $(name).dll ...";\          134     $(ECHO) "Building $(name).dll ...";\
135     link.exe /nologo /machine:x64 /dll /out:$(    135     link.exe /nologo /machine:x64 /dll /out:$(G4LIBDIR)/$(name).dll \
136              $(G4LIBDIR)/lib$(name).exp $(G4LI    136              $(G4LIBDIR)/lib$(name).exp $(G4LIBDIR)/lib$(name).a \
137              $(LIB_PATH)$(G4LIBDIR) $(GLOBLIBS    137              $(LIB_PATH)$(G4LIBDIR) $(GLOBLIBS) \
138              $(LIB_PATH)$(CLHEP_LIB_DIR) $(CLH    138              $(LIB_PATH)$(CLHEP_LIB_DIR) $(CLHEP_LIB) \
139              $(LIB_PATH)$(PTL_LIB_DIR) $(PTL_L    139              $(LIB_PATH)$(PTL_LIB_DIR) $(PTL_LIB) \
140              $(INTYLIBS) $(GDMLLIBS) $(ANALYSI    140              $(INTYLIBS) $(GDMLLIBS) $(ANALYSISLIBS) $(UI32LIBS) $(LOADLIBS)
141   endef                                           141   endef
142 endif                                             142 endif