[Cmake] CMake 1.4, NMake makefile, problem with "jump over" t o build requ ired lib
Wheeler, Fred (Research)
wheeler at crd.ge.com
Wed Jul 31 12:57:00 EDT 2002
> From: Bill Hoffman [mailto:bill.hoffman at kitware.com]
>
> I agree with Jim, the order of your SUBDIRS seems to be wrong.
> In VTK, we build all the libraries, then jump to the Examples
> and Testing.
But can this be done when the examples and tests directories are subdirectories of the library
directories? Can the build proceed in this order?
vtol
vdgl
vtol/tests
vtol/examples
vdgl/tests
vdgl/examples
I don't see how to do this other than by building once without building examples and tests and then
by building again with them.
> However, you have found a bug. If the LIBRARY_OUTPUT_PATH
> is not set,
> the jump to build does not work. Did this work in CMake 1.2?
I'm afraid I'm not really sure whether this worked with 1.2. I don't know if this problem was
introduced by 1.4 or by some changes in the VXL tree.
> At 11:44 AM 7/31/2002 -0400, Miller, James V (Research) wrote:
> >Aren't subdirectories visited in the order in which the SUBDIRS
> >command are listed?
> >
> >Actually, from your email is looks like there is a circular
> dependency
> >on directories
> >
> >vtol depends of vdgl
> >vdgl/examples depends on vtol
> >
> >The answer may be to move the vdgl/examples that depend on vtol into
> >the vtol/examples directory. Then make sure the vdgl is
> listed before
> >vtol in the SUBDIRS commands.
> >
> >
> >-----Original Message-----
> >From: Wheeler, Fred (Research)
> >Sent: Wednesday, July 31, 2002 11:07 AM
> >To: CMake List (E-mail)
> >Subject: [Cmake] CMake 1.4, NMake makefile, problem with
> "jump over" to
> >build requ ired lib
> >
> >
> >I'm having a problem getting VXL to build with CMake-1.4
> generated win2k
> >NMake makefiles in one pass. In vxl/gel the following
> directories get
> >visited in this order (some others are omitted).
> >
> >vxl/gel/vtol (depends on vdgl)
> >vxl/gel/vtol/examples (depends on vdgl since vtol depends on vdgl)
> >vxl/gel/vtol/tests
> >vxl/gel/vdgl
> >vxl/gel/vdgl/examples (depends on vtol)
> >vxl/gel/vdgl/tests
> >
> >Via TARGET_LINK_LIBRARIES commands, vtol depends on vdgl.lib and
> >vdgl/examples depends on vtol. When the build gets to
> >vxl/gel/vtol/examples, the objects build fine, but the link
> to make an
> >executable requires vdgl.lib. So, cmake "jumps" over to vxl/gel/vdgl
> >to build vdgl.lib, but this fails.
> >
> >The NMake makefile file in vxl/gel/vtol uses the following stanza to
> >build vdgl.lib.
> >
> >C:\cygwin\home\wsroot\work_vxl\vxl_bld_win\gel\vdgl\vdgl$(CMA
> KE_STATICLIB_SUFFIX):
> > cd C:\cygwin\home\wsroot\work_vxl\vxl_bld_win\gel\vdgl
> > $(MAKE) -$(MAKEFLAGS) $(MAKESILENT) cmake.depends
> > $(MAKE) -$(MAKEFLAGS) $(MAKESILENT) cmake.check_depends
> > $(MAKE) -$(MAKEFLAGS) $(MAKESILENT) -f cmake.check_depends
> > $(MAKE) $(MAKESILENT)
> >C:\cygwin\home\wsroot\work_vxl\vxl_bld_win\gel\vdgl\vdgl$(CMA
> KE_STATICLIB_SUFFIX)
> > cd
> C:\cygwin\home\wsroot\work_vxl\vxl_bld_win\gel\vtol\examples
> >
> >Note the full path to vdgl.lib. In my build from scratch I get the
> >following error,
> >
> > ...
> > 'cmake.check_depends' is up-to-date
> > 'cmake.depends' is up-to-date
> > NMAKE : warning U4010:
> 'C:\cygwin\home\wsroot\work_vxl\vxl_bld_win\gel\vdgl\vdgl.lib' : build
> >failed; /K specified, continuing ...
> > ...
> >
> >I tried entering the following into a DOS shell. This is what the
> >makefile does. I've substituted for the make variables.
> >
> > cd C:\cygwin\home\wsroot\work_vxl\vxl_bld_win\gel\vdgl
> > nmake /nologo
> C:\cygwin\home\wsroot\work_vxl\vxl_bld_win\gel\vdgl\vdgl.lib
> > cd C:\cygwin\home\wsroot\work_vxl\vxl_bld_win\gel\vtol\examples
> >
> >But I get this error,
> >
> > NMAKE : fatal error U1073: don't know how to make
> >'C:\cygwin\home\wsroot\work_vl\vxl_bld_win\gel\vdgl\vdgl.lib'
> > Stop.
> >
> >There is no make target named
> >"C:\cygwin\home\wsroot\work_vxl\vxl_bld_win\gel\vdgl\vdgl.lib", but
> >there is a target named "vdgl.lib" in gel/vdgl/Makefile. So, I tried
> >removing the full path to vdgl.lib and entered this into the DOS
> >shell,
> >
> > cd C:\cygwin\home\wsroot\work_vxl\vxl_bld_win\gel\vdgl
> > nmake /nologo vdgl.lib
> > cd C:\cygwin\home\wsroot\work_vxl\vxl_bld_win\gel\vtol\examples
> >
> >This built vdgl.lib fine.
> >
> >Should the NMake makefile stanzas that "jump over" to a different
> >directory to build a library that is needed use the full path to that
> >library?
> >
> >Everything gets built after a second "nmake" command.
> >
> >Thanks,
> >Fred Wheeler
> >
> >--
> >Fred Wheeler, GE CRD, KWC-303
> >Phone: 518-387-7225 (GE Internal Dialcom: 8*833-7225)
> >Fax: 518-387-4042 (GE Internal Dialcom: 8*833-4042)
> >_______________________________________________
> >Cmake mailing list
> >Cmake at public.kitware.com
> >http://public.kitware.com/mailman/listinfo/cmake
> >_______________________________________________
> >Cmake mailing list
> >Cmake at public.kitware.com
> >http://public.kitware.com/mailman/listinfo/cmake
>
More information about the CMake
mailing list