All,

I am using cmake / qt for a project and recently submitted a port to FreeBSD for inclusion. Apparently, the process manipulates a file outside of the working build directory before the install phase. This appears to live in the <qt prefix>/etc/settings directory. I'm not exactly sure what this might be but was hoping someone on this list would have more information on how to get this resolved. Here is the error forwarded to me from the ports guy that reviewed the build ...

================================================================
Fatal error: filesystem was touched prior to 'make install' phase
usr/local/etc/settings extra
================================================================

... I don't do anything specific in this directory with my CMakeLists files ( attached ) so I assume that the file manipulation taking place is due to some part of the automated cmake / qt build process. Anyone have any ideas?

Thanks in advance,

-Matthew

#
# Shrew Soft VPN / Access Manager Application
# Cross Platform Make File
#
# author : Matthew Grooms
#        : [EMAIL PROTECTED]
#        : Copyright 2007, Shrew Soft Inc
#

include_directories(
        ${IKE_SOURCE_DIR}/source/
        ${IKE_SOURCE_DIR}/source/libip
        ${QT_INCLUDE_DIR} )

link_directories(
        ${IKE_SOURCE_DIR}/source/libip )

set(
        UIC_FILES
        site.ui
        root.ui
        topology.ui
        about.ui )

set(
        IMG_FILES
        png/policy_exc.png
        png/policy_inc.png
        png/site.png
        png/site_add.png
        png/site_con.png
        png/site_del.png
        png/site_mod.png
        png/ikea.png )

qt_wrap_ui(
        LIB_FILES
        INC_FILES
        CPP_FILES
        ${UIC_FILES} )

qt_wrap_cpp(
        LIB_FILES
        MOC_FILES
        ${INC_FILES} )

add_executable(
        ikea
        main.cpp
        ikea.cpp
        config.cpp
        images.cxx
        ${CPP_FILES} )

target_link_libraries(
        ikea
        ip
        pthread
        ${QT_LIBRARIES} )

# qt image support

add_custom_command(  
        SOURCE ${IMG_FILES}
        COMMAND ${QT_UIC_EXECUTABLE}
        ARGS -embed ikea ${IMG_FILES} -o images.cxx
        TARGET ikea
        OUTPUTS images.cxx )

# install support

install(
        TARGETS ikea
        RUNTIME DESTINATION bin )

#
# Shrew Soft VPN / Client Connect Application
# Cross Platform Make File
#
# author : Matthew Grooms
#        : [EMAIL PROTECTED]
#        : Copyright 2007, Shrew Soft Inc
#

include_directories(
        ${IKE_SOURCE_DIR}/source/
        ${IKE_SOURCE_DIR}/source/ikea
        ${IKE_SOURCE_DIR}/source/iked
        ${IKE_SOURCE_DIR}/source/libike
        ${IKE_SOURCE_DIR}/source/libip
        ${QT_INCLUDE_DIR} )

link_directories(
        ${IKE_SOURCE_DIR}/source/libip )

set(
        UIC_FILES
        banner.ui
        root.ui )

set(
        IMG_FILES
        png/ikec.png )

qt_wrap_ui(
        LIB_FILES
        INC_FILES
        CPP_FILES
        ${UIC_FILES} )

qt_wrap_cpp(
        LIB_FILES
        MOC_FILES
        ${INC_FILES} )

add_executable(
        ikec
        main.cpp
        ikec.cpp
        ../ikea/config.cpp
        images.cxx
        ${CPP_FILES} )

target_link_libraries(
        ikec
        ike
        ip
        pthread
        ${QT_LIBRARIES} )

# qt image support

add_custom_command(  
        SOURCE ${IMG_FILES}
        COMMAND ${QT_UIC_EXECUTABLE}
        ARGS -embed ikec ${IMG_FILES} -o images.cxx
        TARGET ikec
        OUTPUTS images.cxx )

# install support

install(
        TARGETS ikec
        RUNTIME DESTINATION bin )

#
# Shrew Soft VPN / IKE Tools
# Cross Platform Make File
#
# author : Matthew Grooms
#        : [EMAIL PROTECTED]
#        : Copyright 2007, Shrew Soft Inc
#

project( IKE )

#
# Unix Target Constants
#

add_definitions( -DUNIX )

include( CheckCSourceCompiles )
include( CheckLibraryExists )

subdirs(
        source/iked
        source/libike
        source/libip
        source/libith
        source/liblog
        source/libpfk )

set(
        SEARCH_INC
        /usr/include
        /usr/local/include )

set(
        SEARCH_LIB
        /usr/lib
        /usr/local/lib )

set(
        SEARCH_BIN
        /usr/local/bin
        /usr/pkg/bin
        /usr/bin )

set(
        SEARCH_SYS
        /usr/local
        /usr/share
        /usr )

#
# PreRequisite Checks
#

find_path(
        PATH_INC_CRYPTO
        NAMES "openssl/evp.h"
        PATHS ${SEARCH_INC} )

if( NOT PATH_INC_CRYPTO )

        message(
                FATAL_ERROR
                "Unable to locate openssl crypto include files" )

endif( NOT PATH_INC_CRYPTO )

find_library(
        PATH_LIB_CRYPTO
        NAMES "crypto"
        PATHS ${SEARCH_LIB} )

if( NOT PATH_LIB_CRYPTO )

        message(
                FATAL_ERROR
                "Unable to locate openssl crypto library file" )

endif( NOT PATH_LIB_CRYPTO )

find_package( Threads )

if( NOT CMAKE_USE_PTHREADS_INIT )

        message(
                FATAL_ERROR
                "Unable to locate required package : pthreads" )

endif( NOT CMAKE_USE_PTHREADS_INIT )

check_library_exists(
        ${CMAKE_THREAD_LIBS_INIT}
        "pthread_mutex_timedlock"
        ""
        FUNC_LIB_TIMEDLOCK )

if( FUNC_LIB_TIMEDLOCK )

        add_definitions( -DOPT_TIMEDLOCK )

endif( FUNC_LIB_TIMEDLOCK )

find_program(
        PATH_BIN_FLEX
        NAMES "flex"
        PATHS ${SEARCH_BIN} )

if( NOT PATH_BIN_FLEX )

        message(
                FATAL_ERROR
                "Unable to locate required binary : flex" )

endif( NOT PATH_BIN_FLEX )
                
message(
        STATUS 
        "Using binary ${PATH_BIN_FLEX} ..." )

find_program(
        PATH_BIN_BISON
        NAMES "bison"
        PATHS ${SEARCH_BIN} )

if( NOT PATH_BIN_BISON )

        message(
                FATAL_ERROR
                "Unable to locate required binary : bison" )

endif( NOT PATH_BIN_BISON )
                
message(
        STATUS 
        "Using binary ${PATH_BIN_BISON} ..." )

find_path(
        PATH_INC_NETIPSEC
        NAMES "ipsec.h"
        PATHS "/usr/include/netipsec" )

if( PATH_INC_NETIPSEC )

        add_definitions( -DOPT_NETIPSEC )

endif( PATH_INC_NETIPSEC )

find_library(
        PATH_LIB_RT
        NAMES "rt"
        PATHS ${SEARCH_LIB} )

#
# Install Path Checks
#

if( NOT EXISTS ${CMAKE_INSTALL_PREFIX} )

        set(
                CMAKE_INSTALL_PREFIX
                "/usr" )

endif( NOT EXISTS ${CMAKE_INSTALL_PREFIX} )

message(
        STATUS 
        "Using install prefix ${CMAKE_INSTALL_PREFIX} ..." )

# etc path

if( ETCDIR )

        set(    PATH_ETC
                ${ETCDIR} )

else( ETCDIR )

        if( EXISTS ${CMAKE_INSTALL_PREFIX}/etc )

                set(    PATH_ETC
                        "${CMAKE_INSTALL_PREFIX}/etc" )

        else( EXISTS ${CMAKE_INSTALL_PREFIX}/etc )
                
                set(    PATH_ETC
                        "/etc" )

        endif( EXISTS ${CMAKE_INSTALL_PREFIX}/etc )

endif( ETCDIR )

message(
        STATUS
        "Using etc path ${PATH_ETC} ..." )

# man path

if( MANDIR )

        set(    PATH_MAN
                ${MANDIR} )

else( MANDIR )

        find_path(
                PATH_MAN
                NAMES "man"
                PATHS ${SEARCH_SYS}
                NO_DEFAULT_PATH )

        if( PATH_MAN )

                set(    PATH_MAN
                        "${PATH_MAN}/man" )

        else( PATH_MAN )

                set(    PATH_MAN
                        "${CMAKE_INSTALL_PREFIX}/man" )

        endif( PATH_MAN )

endif( MANDIR )

message(
        STATUS
        "Using man path ${PATH_MAN} ..." )

#
# Build Options
#

OPTION( DEBUG  "include Debug Symbol support" )
OPTION( NATT   "include NAT Traversal support" )
OPTION( LDAP   "include LDAP Authentication support" )
OPTION( QTGUI  "include Client QT GUI support" )

OPTION( ETCDIR "etc install directory" )
OPTION( MANDIR "man install directory" )


# Debug Symbols Option

if( DEBUG )

        add_definitions( -g )

endif( DEBUG )

# NAT Traversion option

if( NATT )

        check_c_source_compiles(
                "
                #ifdef __linux__
                # include <inttypes.h>
                # include <linux/pfkeyv2.h>
                #else
                # include <sys/types.h>
                # include <net/pfkeyv2.h>
                #endif

                int main()
                {
                        struct sadb_x_nat_t_type test;

                        return 0;
                }
                "
                NATT_FOUND )

        if( NOT NATT_FOUND )

                message(
                        FATAL_ERROR
                        "Unable to locate required NAT-T pfkey structures" )

        endif( NOT NATT_FOUND )

        # success

        message(
                STATUS 
                "Enabled NAT Traversal support ..." )

        add_definitions( -DOPT_NATT )

endif( NATT )

# LDAP support option

if( LDAP )

        # ldap include

        find_path(
                PATH_INC_LDAP
                NAMES "ldap.h"
                PATHS ${SEARCH_INC} )

        if( NOT PATH_INC_LDAP )

                message(
                        FATAL_ERROR
                        "Unable to locate LDAP include file" )

        endif( NOT PATH_INC_LDAP )

        # ldap libraries

        find_library(
                PATH_LIB_LDAP
                NAMES "ldap"
                PATHS ${SEARCH_LIB} )

        find_library(
                PATH_LIB_LBER
                NAMES "lber"
                PATHS ${SEARCH_LIB} )

        if( NOT PATH_LIB_LDAP OR NOT PATH_LIB_LBER )

                message(
                        FATAL_ERROR
                        "Unable to locate LDAP library file" )

        endif( NOT PATH_LIB_LDAP OR NOT PATH_LIB_LBER )

        # success

        message( 
                STATUS
                "Enabled LDAP Authentication support ..." )

        add_definitions( -DOPT_LDAP )

endif( LDAP )

# Client GUI option

if( QTGUI )

        add_definitions( -DQT_THREAD_SUPPORT )

        set( QT_MT_REQUIRED TRUE )

        find_package( Qt3 )

        if( NOT QT_FOUND )

                message(
                        FATAL_ERROR
                        "Unable to locate required package : QT" )

        endif( NOT QT_FOUND )
                
        # success

        message(
                STATUS 
                "Enabled Client QT GUI support ..." )

        add_definitions( ${QT_DEFINITIONS} )

        add_subdirectory( source/ikea )
        add_subdirectory( source/ikec )

endif( QTGUI )



_______________________________________________
CMake mailing list
[email protected]
http://www.cmake.org/mailman/listinfo/cmake

Reply via email to