[cmake-developers] OpenBSD specific patches
Amit Kulkarni
amitkulz at gmail.com
Fri Nov 30 16:54:37 EST 2012
> Thanks. Please format this as a patch series that makes changes
> in logical groups (possibly only one file each) and explains their
> purpose in the commit messages.
a email sent to cmake-developers@ for each file touched with a commit message?
> Here are some quick comments that can guide some revisions and/or
> explanations in the commit messages:
>
>> @@ -154,6 +158,7 @@ find_program(QT_MOC_EXECUTABLE
>> "[HKEY_CURRENT_USER\\Software\\Trolltech\\Qt3Versions\\3.2.0;InstallDir]/include/Qt"
>> "[HKEY_CURRENT_USER\\Software\\Trolltech\\Qt3Versions\\3.1.0;InstallDir]/include/Qt"
>> ${GLOB_PATHS_BIN}
>> + /usr/local
>> /usr/local/qt
>> /usr/lib/qt
>> /usr/lib/qt3
>
> Can moc really be "/usr/local/moc"?
A /usr/local/lib/qt3/bin/moc exists on my machine. I think that the
OpenBSD environment (linker or libtool) takes care of it. David will
confirm here. I notice all the FindQt3 patches are /usr/local.
>> @@ -168,6 +172,10 @@ set(TCLTK_POSSIBLE_INCLUDE_PATHS
>> /usr/include/tcl8.3
>> /usr/include/tcl8.2
>> /usr/include/tcl8.0
>> + /usr/local/include/tcl8.5
>> + /usr/local/include/tk8.5
>> + /usr/local/include/tcl8.4
>> + /usr/local/include/tk8.4
>> )
>
> This may be better achieved using PATH_SUFFIXES to replace the
> current /usr/include/tcl* paths so that we get /usr/local/include/tcl*
> for free.
I am unfamiliar with PATH_SUFFIXES (and with CMake in general). I
looked at FindBoost.cmake and FindGTK.cmake but they were all using
PATH_SUFFIXES inside of find_path() whereas in the diff above it is
inside a set(TCLTK_POSSIBLE_INCLUDE_PATHS). I am not sure how to
proceed here.
>> --- a/Modules/Platform/OpenBSD.cmake
>> +++ b/Modules/Platform/OpenBSD.cmake
>> @@ -16,3 +16,9 @@ if(NOT CMAKE_PLATFORM_RUNTIME_PATH)
>> endif()
>>
>> set_property(GLOBAL PROPERTY FIND_LIBRARY_USE_OPENBSD_VERSIONING 1)
>> +
>> +# OpenBSD policy requires that shared libraries be installed without
>> +# executable permission.
>> +set(CMAKE_INSTALL_SO_NO_EXE 1)
>> +set(CMAKE_INSTALL_SO_NO_EXE 1 CACHE INTERNAL
>> + "Install .so files without execute permission.")
>
> If this applies to all OpenBSD distributions then there is no reason
> to make it a cache entry. Just hard-code the setting (as you do in
> your first set() call in this hunk). The only reason it is in the
> CACHE in Linux.cmake is because different distributions have varying
> policies.
Thanks, I removed the CACHE line.
More information about the cmake-developers
mailing list