[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