Re: Problem with auto CMake out-of-source builds?

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Sun, Jul 5, 2020 at 8:20 AM Neal Gompa <ngompa13@xxxxxxxxx> wrote:
On Sun, Jul 5, 2020 at 9:16 AM Richard Shaw <hobbes1069@xxxxxxxxx> wrote:
>
> I saw the change notification but didn't know it went in to "production". I was trying to build OpenImageIO in rawhide and it failed, because I was already doing an out of source build which it appended "%{_arch}-redhat-linux-gnu" or something like that to.
>
> So I looked up the guidelines for CMake which state:
>
> %build
> %cmake .
> %make_build
>
>
> Oookay... Now OIIO CMake config is giving me:
>
> CMake Error at CMakeLists.txt:50 (message):
>   Not allowed to run in-source build!
>
> And low and behold I see new options being passed to CMake...
>
> + /usr/bin/cmake -S . -B .
>
> Which point the source and binary locations to the same directory.
>
> So I was all for the change other than the fact I was already doing out-of-source builds for all of the CMake packages I maintain, which this breaks, and right now the "automagic" seems to be broken as well.
>

Temporarily, we have %__cmake_in_source_build set, which forces back
the legacy behavior. You can switch to the upcoming out of source
default by adding the following to the top of your spec:

# Force out of source build
%undefine __cmake_in_source_build

With that, you can use %cmake with no arguments and everything should work fine.

Well, both ways seem to be broken now. If I use the out-of-source build, cmake works fine but apparently %make_build doesn't auto-change to the generated directory. Am I expected to know the direcotory pattern and handle it myself? If so this seems like a major step backwards.

If I allow in source builds it adds the "-S . -B ." and even though I make my own directory and point back to it "%cmake ... ../" it still fails the projects in source build check:

 + /usr/bin/cmake -S . -B . -DCMAKE_C_FLAGS_RELEASE:STRING=-DNDEBUG -DCMAKE_CXX_FLAGS_RELEASE:STRING=-DNDEBUG -DCMAKE_Fortran_FLAGS_RELEASE:STRING=-DNDEBUG -DCMAKE_VERBOSE_MAKEFILE:BOOL=ON -DCMAKE_INSTALL_PREFIX:PATH=/usr -DINCLUDE_INSTALL_DIR:PATH=/usr/include -DLIB_INSTALL_DIR:PATH=/usr/lib64 -DSYSCONF_INSTALL_DIR:PATH=/etc -DSHARE_INSTALL_PREFIX:PATH=/usr/share -DLIB_SUFFIX=64 -DBUILD_SHARED_LIBS:BOOL=ON -DCMAKE_BUILD_TYPE=RelWithDebInfo -DCMAKE_SKIP_RPATH:BOOL=TRUE -DPYTHON_VERSION=3.9 -DBUILD_DOCS:BOOL=TRUE -DINSTALL_DOCS:BOOL=FALSE -DINSTALL_FONTS:BOOL=FALSE -DUSE_EXTERNAL_PUGIXML:BOOL=TRUE -DSTOP_ON_WARNING:BOOL=FALSE -DJPEG_INCLUDE_DIR=/usr/include -DOPENJPEG_INCLUDE_DIR=/usr/include/openjpeg-2.3 -DOpenGL_GL_PREFERENCE=GLVND -DVERBOSE=TRUE ../
-- The CXX compiler identification is GNU 10.1.1
-- The C compiler identification is GNU 10.1.1
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Check for working CXX compiler: /usr/bin/g++ - skipped
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working C compiler: /usr/bin/gcc - skipped
-- Detecting C compile features
-- Detecting C compile features - done
-- Building OpenImageIO 2.1.17.0
-- CMake version is 3.18.0-rc3
-- Configuring OpenImageIO 2.1.17.0
-- CMake 3.18.0-rc3
-- CMake system           = Linux-5.6.19-300.fc32.x86_64
-- CMake system name      = Linux
-- Project source dir     = /builddir/build/BUILD/oiio-Release-2.1.17.0
-- Project build dir      = /builddir/build/BUILD/oiio-Release-2.1.17.0
-- Project install prefix = /usr
-- Configuration types    =
-- Build type             = RelWithDebInfo
CMake Error at CMakeLists.txt:50 (message):
  Not allowed to run in-source build!

Thanks,
Richard
_______________________________________________
devel mailing list -- devel@xxxxxxxxxxxxxxxxxxxxxxx
To unsubscribe send an email to devel-leave@xxxxxxxxxxxxxxxxxxxxxxx
Fedora Code of Conduct: https://docs.fedoraproject.org/en-US/project/code-of-conduct/
List Guidelines: https://fedoraproject.org/wiki/Mailing_list_guidelines
List Archives: https://lists.fedoraproject.org/archives/list/devel@xxxxxxxxxxxxxxxxxxxxxxx

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Fedora Announce]     [Fedora Users]     [Fedora Kernel]     [Fedora Testing]     [Fedora Formulas]     [Fedora PHP Devel]     [Kernel Development]     [Fedora Legacy]     [Fedora Maintainers]     [Fedora Desktop]     [PAM]     [Red Hat Development]     [Gimp]     [Yosemite News]

  Powered by Linux