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.1.2)


  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 QTFLAGS            # Qt5
 45     QT_VERSION := 5                            << 
 46   endif                                        << 
 47   ifndef QTFLAGS                               << 
 48     QTFLAGS  := -I$(QTHOME)/include                45     QTFLAGS  := -I$(QTHOME)/include
 49     QTFLAGS  += -I$(QTHOME)/include/QtCore         46     QTFLAGS  += -I$(QTHOME)/include/QtCore
 50     QTFLAGS  += -I$(QTHOME)/include/QtGui          47     QTFLAGS  += -I$(QTHOME)/include/QtGui
 51     QTFLAGS  += -I$(QTHOME)/include/QtWidgets      48     QTFLAGS  += -I$(QTHOME)/include/QtWidgets
 52     QTFLAGS  += -I$(QTHOME)/include/QtOpenGL       49     QTFLAGS  += -I$(QTHOME)/include/QtOpenGL
 53     ifeq ($(QT_VERSION),6)                     <<  50     QTFLAGS  += -I$(QTHOME)/include/QtPrintSupport
 54       QTFLAGS   += -I $(QTHOME)/include/QtOpen << 
 55     endif                                      << 
 56   endif                                            51   endif
 57   ifndef QTMOC                                     52   ifndef QTMOC
 58     QTMOC    := $(QTHOME)/bin/moc                  53     QTMOC    := $(QTHOME)/bin/moc
 59   endif                                            54   endif
 60   ifeq ($(QT_VERSION),5)       # Qt5           <<  55   ifndef QTLIBS              # Qt5
 61     ifndef QTLIBS                              <<  56     QTLIBS   := $(LIB_PATH)$(QTHOME)/lib Qt5Core.lib Qt5Gui.lib Qt5Widgets.lib Qt5PrintSupport.lib
 62       QTLIBS   := $(LIB_PATH)$(QTHOME)/lib Qt5 <<  57   endif
 63     ifndef GLQTLIBS                            <<  58   ifndef GLQTLIBS
 64       GLQTLIBS := $(LIB_PATH)$(QTHOME)/lib Qt5 <<  59     GLQTLIBS := $(LIB_PATH)$(QTHOME)/lib Qt5Core.lib Qt5Gui.lib Qt5Widgets.lib Qt5OpenGL.lib Qt5PrintSupport.lib
 65     endif                                      << 
 66   else                         # Qt6           << 
 67     ifndef QTLIBS                              << 
 68       QTLIBS   := $(LIB_PATH)$(QTHOME)/lib Qt6 << 
 69     ifndef GLQTLIBS                            << 
 70       GLQTLIBS := $(LIB_PATH)$(QTHOME)/lib Qt6 << 
 71     endif                                      << 
 72   endif                                            60   endif
                                                   >>  61 
 73 #                                                  62 #
 74 # Building DLLs                                    63 # Building DLLs
 75 # -------------                                    64 # -------------
 76 #  The commands below allow to build DLLs from     65 #  The commands below allow to build DLLs from the archive libraries.
 77 #  From a libG4xxx.a, will extract the symbols     66 #  From a libG4xxx.a, will extract the symbols with the genwindef tool,
 78 #  which will produce a G4xxx.def file.            67 #  which will produce a G4xxx.def file.
 79 #  The G4xxx.def file will contain the list of     68 #  The G4xxx.def file will contain the list of symbols that are "exported"
 80 #  or made public for using the DLLs.              69 #  or made public for using the DLLs.
 81 #  The source genwindef.cc is in the geant4/co     70 #  The source genwindef.cc is in the geant4/config directory. The binary is
 82 #  built during the library installation proce     71 #  built during the library installation process, and will be placed in
 83 #  $G4LIB/G4SYSTEM.                                72 #  $G4LIB/G4SYSTEM. 
 84 #  If can also be built as follows :               73 #  If can also be built as follows :
 85 #    DOS> cl.exe /Fegenwindef.exe genwindef.cc     74 #    DOS> cl.exe /Fegenwindef.exe genwindef.cc 
 86 #  Then, to use it :                               75 #  Then, to use it :
 87 #    DOS> genwindef -o G4xxx.def -l G4xxx libG     76 #    DOS> genwindef -o G4xxx.def -l G4xxx libG4xxx.a 
 88 #  Libraries libG4xxx.lib can also be built wi     77 #  Libraries libG4xxx.lib can also be built with :
 89 #    DOS> lib /def:G4xxx.def /out:libG4xxx.lib     78 #    DOS> lib /def:G4xxx.def /out:libG4xxx.lib
 90 #  It also produces a libG4xxx.exp used to bui     79 #  It also produces a libG4xxx.exp used to build the DLL.
 91 #  The DLL can be built with :                     80 #  The DLL can be built with :
 92 #    DOS> link /dll /out:G4xxx.dll libG4xxx.ex     81 #    DOS> link /dll /out:G4xxx.dll libG4xxx.exp libG4xxx.a <dependencies>
 93 #  Note that a DLL must be fully linked. You s     82 #  Note that a DLL must be fully linked. You should NOT have undefined 
 94 #  symbols as output of the link command.          83 #  symbols as output of the link command.
 95 #                                                  84 #
 96   ifdef G4LIB_USE_CLHEP                            85   ifdef G4LIB_USE_CLHEP
 97     GLOBLIBS += libG4clhep.lib                     86     GLOBLIBS += libG4clhep.lib
 98   endif                                            87   endif
 99   ifdef G4LIB_USE_PTL                              88   ifdef G4LIB_USE_PTL
100     GLOBLIBS += libG4ptl.lib                       89     GLOBLIBS += libG4ptl.lib
101   endif                                            90   endif
102   define build-granular-shared-lib                 91   define build-granular-shared-lib
103     @libdir=`(cd $(@D);/bin/pwd)`;\                92     @libdir=`(cd $(@D);/bin/pwd)`;\
104     cd $(G4TMP)/$(G4SYSTEM);\                      93     cd $(G4TMP)/$(G4SYSTEM);\
105     $(ECHO) "Building $(name).def file ...";\      94     $(ECHO) "Building $(name).def file ...";\
106     $(RM) $(name).def;\                            95     $(RM) $(name).def;\
107     $(G4LIB)/$(G4SYSTEM)/genwindef.exe -o $(na     96     $(G4LIB)/$(G4SYSTEM)/genwindef.exe -o $(name).def -l $(name) $(G4LIBDIR)/lib$(name).a;\
108     $(ECHO) "Building lib$(name).exp and lib$(     97     $(ECHO) "Building lib$(name).exp and lib$(name).lib file ...";\
109     $(RM) $(G4LIBDIR)/lib$(name).exp;\             98     $(RM) $(G4LIBDIR)/lib$(name).exp;\
110     $(RM) $(G4LIBDIR)/lib$(name).lib;\             99     $(RM) $(G4LIBDIR)/lib$(name).lib;\
111     lib.exe /nologo /machine:x64 /def:$(name).    100     lib.exe /nologo /machine:x64 /def:$(name).def \
112             /out:$(G4LIBDIR)/lib$(name).lib;\     101             /out:$(G4LIBDIR)/lib$(name).lib;\
113     $(RM) $(G4LIBDIR)/$(name).dll;\               102     $(RM) $(G4LIBDIR)/$(name).dll;\
114     $(ECHO) "Building $(name).dll file ...";\     103     $(ECHO) "Building $(name).dll file ...";\
115     link.exe /nologo /machine:x64 /dll /out:$(    104     link.exe /nologo /machine:x64 /dll /out:$(G4LIBDIR)/$(name).dll \
116              $(G4LIBDIR)/lib$(name).exp $(G4LI    105              $(G4LIBDIR)/lib$(name).exp $(G4LIBDIR)/lib$(name).a \
117              $(LIB_PATH)$(G4LIBDIR) $(GLOBLIBS    106              $(LIB_PATH)$(G4LIBDIR) $(GLOBLIBS) \
118              $(LIB_PATH)$(CLHEP_LIB_DIR) $(CLH    107              $(LIB_PATH)$(CLHEP_LIB_DIR) $(CLHEP_LIB) \
119              $(LIB_PATH)$(PTL_LIB_DIR) $(PTL_L    108              $(LIB_PATH)$(PTL_LIB_DIR) $(PTL_LIB) \
120              $(INTYLIBS) $(GDMLLIBS) $(ANALYSI    109              $(INTYLIBS) $(GDMLLIBS) $(ANALYSISLIBS) $(UI32LIBS) $(LOADLIBS)
121   endef                                           110   endef
122   define build-global-shared-lib                  111   define build-global-shared-lib
123     @libdir=`(cd $(@D);/bin/pwd)`;\               112     @libdir=`(cd $(@D);/bin/pwd)`;\
124     cd $(G4TMP)/$(G4SYSTEM);\                     113     cd $(G4TMP)/$(G4SYSTEM);\
125     $(ECHO) "Building $(name).def file ...";\     114     $(ECHO) "Building $(name).def file ...";\
126     $(RM) $(name).def;\                           115     $(RM) $(name).def;\
127     $(G4LIB)/$(G4SYSTEM)/genwindef.exe -o $(na    116     $(G4LIB)/$(G4SYSTEM)/genwindef.exe -o $(name).def -l $(name) $(G4LIBDIR)/lib$(name).a;\
128     $(ECHO) "Building lib$(name).exp and lib$(    117     $(ECHO) "Building lib$(name).exp and lib$(name).lib ...";\
129     $(RM) $(G4LIBDIR)/lib$(name).exp;\            118     $(RM) $(G4LIBDIR)/lib$(name).exp;\
130     $(RM) $(G4LIBDIR)/lib$(name).lib;\            119     $(RM) $(G4LIBDIR)/lib$(name).lib;\
131     lib.exe /nologo /machine:x64 /def:$(name).    120     lib.exe /nologo /machine:x64 /def:$(name).def \
132             /out:$(G4LIBDIR)/lib$(name).lib;\     121             /out:$(G4LIBDIR)/lib$(name).lib;\
133     $(RM) $(G4LIBDIR)/$(name).dll;\               122     $(RM) $(G4LIBDIR)/$(name).dll;\
134     $(ECHO) "Building $(name).dll ...";\          123     $(ECHO) "Building $(name).dll ...";\
135     link.exe /nologo /machine:x64 /dll /out:$(    124     link.exe /nologo /machine:x64 /dll /out:$(G4LIBDIR)/$(name).dll \
136              $(G4LIBDIR)/lib$(name).exp $(G4LI    125              $(G4LIBDIR)/lib$(name).exp $(G4LIBDIR)/lib$(name).a \
137              $(LIB_PATH)$(G4LIBDIR) $(GLOBLIBS    126              $(LIB_PATH)$(G4LIBDIR) $(GLOBLIBS) \
138              $(LIB_PATH)$(CLHEP_LIB_DIR) $(CLH    127              $(LIB_PATH)$(CLHEP_LIB_DIR) $(CLHEP_LIB) \
139              $(LIB_PATH)$(PTL_LIB_DIR) $(PTL_L    128              $(LIB_PATH)$(PTL_LIB_DIR) $(PTL_LIB) \
140              $(INTYLIBS) $(GDMLLIBS) $(ANALYSI    129              $(INTYLIBS) $(GDMLLIBS) $(ANALYSISLIBS) $(UI32LIBS) $(LOADLIBS)
141   endef                                           130   endef
142 endif                                             131 endif