Revision: 70013 http://sourceforge.net/p/brlcad/code/70013 Author: starseeker Date: 2017-07-28 17:36:24 +0000 (Fri, 28 Jul 2017) Log Message: ----------- see if we can rework the tcl_pkgindex writer to not use LOCATION, which is on its way out.
Modified Paths: -------------- brlcad/trunk/misc/CMake/TCL_PKGINDEX.cmake brlcad/trunk/src/other/incrTcl/itcl/CMakeLists.txt brlcad/trunk/src/other/incrTcl/itk/CMakeLists.txt Modified: brlcad/trunk/misc/CMake/TCL_PKGINDEX.cmake =================================================================== --- brlcad/trunk/misc/CMake/TCL_PKGINDEX.cmake 2017-07-28 15:01:54 UTC (rev 70012) +++ brlcad/trunk/misc/CMake/TCL_PKGINDEX.cmake 2017-07-28 17:36:24 UTC (rev 70013) @@ -35,45 +35,43 @@ #============================================================ # TCL_PKGINDEX #============================================================ -macro(TCL_PKGINDEX target pkgname pkgversion) +function(TCL_PKGINDEX target pkgname pkgversion) + + # Identify the shared library suffix to be used + set(lname ${CMAKE_SHARED_LIBRARY_PREFIX}${target}${CMAKE_SHARED_LIBRARY_SUFFIX}) + + # Create a "working" pkgIndex.tcl file that will allow + # the package to work from the build directory + set(lld_install "${LIB_DIR}") + if(MSVC) + set(lld_install "${BIN_DIR}") + endif(MSVC) if(NOT CMAKE_CONFIGURATION_TYPES) - set(loadable_libdir_build "${CMAKE_LIBRARY_OUTPUT_DIRECTORY}") - set(loadable_libdir_install "${LIB_DIR}") - if(CMAKE_BUILD_TYPE) - get_target_property(target_LIBLOCATION ${target} LOCATION_${CMAKE_BUILD_TYPE}) - else(CMAKE_BUILD_TYPE) - get_target_property(target_LIBLOCATION ${target} LOCATION) - endif(CMAKE_BUILD_TYPE) - get_filename_component(target_LIBNAME ${target_LIBLOCATION} NAME) - file(WRITE "${CMAKE_CURRENT_BINARY_DIR}/pkgIndex.tcl" "package ifneeded ${pkgname} ${pkgversion} [list load [file join $dir .. .. \"${loadable_libdir_install}\" ${target_LIBNAME}] ${pkgname}]") - install(FILES "${CMAKE_CURRENT_BINARY_DIR}/pkgIndex.tcl" DESTINATION lib/${pkgname}${pkgversion}) - file(WRITE "${CMAKE_BINARY_DIR}/lib/${pkgname}${pkgversion}/pkgIndex.tcl" "package ifneeded ${pkgname} ${pkgversion} [list load [file join $dir \"${loadable_libdir_build}\" ${target_LIBNAME}] ${pkgname}]") - DISTCLEAN("${CMAKE_CURRENT_BINARY_DIR}/pkgIndex.tcl") + set(lld_build "${CMAKE_LIBRARY_OUTPUT_DIRECTORY}") + set(bpkgindex "${CMAKE_BINARY_DIR}/lib/${pkgname}${pkgversion}/pkgIndex.tcl") + file(WRITE "${bpkgindex}" "package ifneeded ${pkgname} ${pkgversion} [list load [file join $dir \"${lld_build}\" ${lname}] ${pkgname}]") DISTCLEAN("${CMAKE_BINARY_DIR}/lib/${pkgname}${pkgversion}") else(NOT CMAKE_CONFIGURATION_TYPES) - if(MSVC) - set(loadable_libdir_install "${BIN_DIR}") - else(MSVC) - set(loadable_libdir_install "${LIB_DIR}") - endif(MSVC) - DISTCLEAN("${CMAKE_CURRENT_BINARY_DIR}/pkgIndex.tcl") foreach(CFG_TYPE ${CMAKE_CONFIGURATION_TYPES}) string(TOUPPER "${CFG_TYPE}" CFG_TYPE_UPPER) + set(bpkgindex "${CMAKE_LIBRARY_OUTPUT_DIRECTORY_${CFG_TYPE_UPPER}}/${pkgname}${pkgversion}/pkgIndex.tcl") + set(lld_build "${CMAKE_LIBRARY_OUTPUT_DIRECTORY_${CFG_TYPE_UPPER}}") if(MSVC) - set(loadable_libdir_build "${CMAKE_RUNTIME_OUTPUT_DIRECTORY_${CFG_TYPE_UPPER}}") - else(MSVC) - set(loadable_libdir_build "${CMAKE_LIBRARY_OUTPUT_DIRECTORY_${CFG_TYPE_UPPER}}") + set(lld_build "${CMAKE_RUNTIME_OUTPUT_DIRECTORY_${CFG_TYPE_UPPER}}") endif(MSVC) - get_target_property(target_LIBLOCATION ${target} LOCATION_${CFG_TYPE_UPPER}) - get_filename_component(target_LIBNAME ${target_LIBLOCATION} NAME) - file(WRITE ${CMAKE_LIBRARY_OUTPUT_DIRECTORY_${CFG_TYPE_UPPER}}/${pkgname}${pkgversion}/pkgIndex.tcl "package ifneeded ${pkgname} ${pkgversion} [list load [file join $dir \"${loadable_libdir_build}\" ${target_LIBNAME}] ${pkgname}]") + file(WRITE "${bpkgindex}" "package ifneeded ${pkgname} ${pkgversion} [list load [file join $dir \"${lld_build}\" ${lname}] ${pkgname}]") DISTCLEAN(${CMAKE_LIBRARY_OUTPUT_DIRECTORY_${CFG_TYPE_UPPER}}/${pkgname}${pkgversion}) endforeach(CFG_TYPE ${CMAKE_CONFIGURATION_TYPES}) - file(WRITE "${CMAKE_CURRENT_BINARY_DIR}/pkgIndex.tcl" "package ifneeded ${pkgname} ${pkgversion} [list load [file join $dir .. .. \"${loadable_libdir_install}\" ${target_LIBNAME}] ${pkgname}]") - install(FILES "${CMAKE_CURRENT_BINARY_DIR}/pkgIndex.tcl" DESTINATION lib/${pkgname}${pkgversion}) endif(NOT CMAKE_CONFIGURATION_TYPES) -endmacro(TCL_PKGINDEX) + # Create the file Tcl will use once installed + set(ipkgindex "${CMAKE_CURRENT_BINARY_DIR}/pkgIndex.tcl") + file(WRITE "${ipkgindex}" "package ifneeded ${pkgname} ${pkgversion} [list load [file join $dir .. .. \"${lld_install}\" ${lname}] ${pkgname}]") + install(FILES "${ipkgindex}" DESTINATION lib/${pkgname}${pkgversion}) + DISTCLEAN("${ipkgindex}") + +endfunction(TCL_PKGINDEX) + # Local Variables: # tab-width: 8 # mode: cmake Modified: brlcad/trunk/src/other/incrTcl/itcl/CMakeLists.txt =================================================================== --- brlcad/trunk/src/other/incrTcl/itcl/CMakeLists.txt 2017-07-28 15:01:54 UTC (rev 70012) +++ brlcad/trunk/src/other/incrTcl/itcl/CMakeLists.txt 2017-07-28 17:36:24 UTC (rev 70013) @@ -167,7 +167,6 @@ add_library(itcl ${ITCL_GENERIC_SRCS}) ENDIF(WIN32) target_link_libraries(itcl ${M_LIBRARY} ${TCL_STUB_LIBRARIES} ) -SET_TARGET_PROPERTIES(itcl PROPERTIES PREFIX "lib") SET_TARGET_PROPERTIES(itcl PROPERTIES VERSION ${ITCL_VERSION} SOVERSION ${ITCL_VERSION_MAJOR}) SET_PROPERTY(TARGET itcl APPEND PROPERTY COMPILE_DEFINITIONS USE_TCL_STUBS) install(TARGETS itcl Modified: brlcad/trunk/src/other/incrTcl/itk/CMakeLists.txt =================================================================== --- brlcad/trunk/src/other/incrTcl/itk/CMakeLists.txt 2017-07-28 15:01:54 UTC (rev 70012) +++ brlcad/trunk/src/other/incrTcl/itk/CMakeLists.txt 2017-07-28 17:36:24 UTC (rev 70013) @@ -189,7 +189,6 @@ target_link_libraries(itk ${TCL_LIBRARIES} ${ITCL_LIBRARY}) ENDIF(WIN32) SET_TARGET_PROPERTIES(itk PROPERTIES VERSION ${ITK_VERSION} SOVERSION ${ITK_VERSION_MAJOR}) -SET_TARGET_PROPERTIES(itk PROPERTIES PREFIX "lib") install(TARGETS itk RUNTIME DESTINATION ${BIN_DIR} LIBRARY DESTINATION ${LIB_DIR} This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. ------------------------------------------------------------------------------ Check out the vibrant tech community on one of the world's most engaging tech sites, Slashdot.org! http://sdm.link/slashdot _______________________________________________ BRL-CAD Source Commits mailing list brlcad-commits@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/brlcad-commits