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