Trying to add definition to executable as shown below.
target_compile_definitions(definitionTest
PUBLIC
$<INSTALL_INTERFACE:EXAMPLE_ASSETS_PATH="install time path">
$<BUILD_INTERFACE:EXAMPLE_ASSETS_PATH="build time path">
)
Is this valid/possible ? It always gives the build time value.
Being a new user it doesn’t allow adding files. Hence the copy paste.
CMakeLists.txt
cmake_minimum_required (VERSION 3.10)
project(examples)
add_executable(definitionTest main.cpp)
target_compile_definitions(definitionTest
PUBLIC
$<INSTALL_INTERFACE:EXAMPLE_ASSETS_PATH="install time path">
$<BUILD_INTERFACE:EXAMPLE_ASSETS_PATH="build time path">
)
## install
include(GNUInstallDirs)
if(CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT)
set(CMAKE_INSTALL_PREFIX "${CMAKE_BINARY_DIR}/install" CACHE PATH "Setting install path to install folder in the build tree" FORCE)
endif()
install(
TARGETS definitionTest
EXPORT EXPORT_TEST
RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}/definitionTest
)
install(
EXPORT EXPORT_TEST
NAMESPACE UNKOWN::
DESTINATION lib/cmake/EXPORT_TEST
)
export(
EXPORT EXPORT_TEST
NAMESPACE UNKNOWN::
)
main.cpp
#include <iostream>
#include <conio.h>
int main()
{
std::cout<<EXAMPLE_ASSETS_PATH;
getch();
return 0;
}